Watch-IP

Utiliser Watch-IP avec JavaScript et TypeScript

@digitload/watch-ip-sdk (npm, v0.1.1) encapsule GET /v1/geo dans un petit client avec des types TypeScript pour chaque champ de réponse et aucune dépendance à l'exécution.

Installation

Nécessite Node.js 18+ ou n'importe quel navigateur moderne — les deux fournissent le fetch global sur lequel ce paquet s'appuie.

npm

npm install @digitload/watch-ip-sdk

Démarrage rapide

Construisez un client avec votre clé publiable et appelez getGeo(). Le GeoResponse renvoyé est entièrement typé ; tous les champs sauf ip et isEUCountry sont annulables (nullable), donc vérifiez un champ avant de l'afficher.

TypeScript

import { WatchIP } from "@digitload/watch-ip-sdk";

const client = new WatchIP("wip_pub_xxxxxxxx");
const geo = await client.getGeo();

console.log(geo.country, geo.city, geo.timezone);

Gestion des erreurs et délais d'expiration

Chaque échec — une requête rejetée (clé invalide, origine non autorisée, limite de débit) ou une erreur réseau — lève une WatchIPError avec un status et un code stable. Il n'y a pas de délai d'expiration intégré ; passez le signal d'un AbortController pour annuler vous-même une requête trop lente.

TypeScript

import { WatchIP, WatchIPError } from "@digitload/watch-ip-sdk";

const client = new WatchIP("wip_pub_xxxxxxxx");
const controller = new AbortController();
setTimeout(() => controller.abort(), 5000);

try {
  const geo = await client.getGeo({ signal: controller.signal });
} catch (err) {
  if (err instanceof WatchIPError) {
    console.error(err.code, err.status, err.message);
  }
}

Champs optionnels

Passez include: ["hostname"] pour ajouter une recherche DNS inversée pour l'IP connectée. C'est optionnel car cela ajoute un saut réseau supplémentaire, donc ne le demandez que si vous utilisez ce champ.

TypeScript

const geo = await client.getGeo({ include: ["hostname"] });

Ce que ce SDK ne couvre pas

Ce paquet n'appelle que GET /v1/geo. Il n'a aucune méthode pour la recherche d'IP, la validation d'e-mail ou les vérifications de risque — des points de terminaison serveur à serveur authentifiés avec une clé secrète, pas la clé publiable autour de laquelle ce SDK est construit. Appelez-les directement en HTTP ; voir la référence de recherche d'IP et le guide d'authentification.

Pages associées