Skip to content

Mode programmatique

Vous pouvez utiliser new Cap({ ... }) dans votre JavaScript côté client pour créer une instance de Cap, puis la méthode solve() pour résoudre le défi.

js
const cap = new Cap({
  apiEndpoint: "https://<your-instance>/<site-key>/",
  // ou : apiEndpoint: "/api/",
});
const solution = await cap.solve();

console.log(solution.token);

Vous pouvez aussi mettre en place des écouteurs d'événements :

js
const cap = new Cap({
  apiEndpoint: "https://<your-instance>/<site-key>/",
  // ou : apiEndpoint: "/api/",
});

cap.addEventListener("progress", (event) => {
  console.log(`Résolution... ${event.detail.progress}% terminé`);
});

En coulisses, Cap crée un élément cap-widget masqué et s'en sert pour résoudre le défi.

Méthodes et arguments pris en charge

Les méthodes suivantes sont disponibles :

new Cap({ ... })

Crée une instance de Cap. Si un second argument est fourni, Cap utilisera cet élément au lieu d'en créer un nouveau en mémoire.

Arguments

json
{
  apiEndpoint: ..., // point d'accès API, équivalent à l'attribut `data-cap-api-endpoint` du widget
  workers: navigator.hardwareConcurrency || 8 // nombre de threads de travail à utiliser
}

cap.solve()

Demande un défi et le résout.

Sortie : { token }

cap.token

Renvoie le jeton de la dernière résolution.

cap.reset()

Réinitialise cap.token.

cap.addEventListener(..., function () { ... })

Écoute un événement du widget Cap. Voir les événements pris en charge.