Watch-IP

Watch-IP gebruiken met JavaScript en TypeScript

@digitload/watch-ip-sdk (npm, v0.1.1) wrapt GET /v1/geo in een kleine client met TypeScript-typen voor elk antwoordveld en zonder runtime-afhankelijkheden.

Installeren

Vereist Node.js 18+ of elke moderne browser — beide bieden de globale fetch waarop dit pakket is gebouwd.

npm

npm install @digitload/watch-ip-sdk

Snel starten

Maak een client aan met je publiceerbare sleutel en roep getGeo() aan. De teruggegeven GeoResponse is volledig getypeerd; elk veld behalve ip en isEUCountry is nullable, dus controleer een veld voordat je het rendert.

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);

Foutafhandeling en timeouts

Elke mislukking — een geweigerd verzoek (ongeldige sleutel, niet-toegestane origin, rate limit) of een netwerkfout — gooit een WatchIPError met een status en een stabiele code. Er is geen ingebouwde timeout; geef het signal van een AbortController mee om een traag verzoek zelf te annuleren.

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);
  }
}

Optionele velden

Geef include: ["hostname"] mee om een reverse-DNS-opzoeking voor het verbindende IP toe te voegen. Dit is opt-in omdat het een extra netwerk-hop toevoegt, dus vraag het alleen op als je het veld ook gebruikt.

TypeScript

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

Wat deze SDK niet dekt

Dit pakket roept alleen GET /v1/geo aan. Het heeft geen methoden voor IP-lookup, e-mailvalidatie of risicocontroles — dat zijn server-naar-server-endpoints die met een geheime sleutel worden geauthenticeerd, niet de publiceerbare sleutel waar deze SDK op is gebouwd. Roep ze rechtstreeks over HTTP aan; zie de referentie voor IP-lookup en de authenticatiehandleiding.

Gerelateerde pagina's