Watch-IP

Utilize o Watch-IP com JavaScript e TypeScript

@digitload/watch-ip-sdk (npm, v0.1.1) envolve GET /v1/geo num cliente pequeno com tipos TypeScript para cada campo da resposta e sem dependências em tempo de execução.

Instalação

Requer Node.js 18+ ou qualquer navegador moderno — ambos disponibilizam o fetch global sobre o qual este pacote é construído.

npm

npm install @digitload/watch-ip-sdk

Início rápido

Construa um cliente com a sua chave publicável e chame getGeo(). O GeoResponse devolvido é totalmente tipado; todos os campos exceto ip e isEUCountry são anuláveis, por isso verifique um campo antes de o apresentar.

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

Tratamento de erros e tempos limite

Toda a falha — um pedido rejeitado (chave inválida, origem não permitida, limite de taxa) ou um erro de rede — lança um WatchIPError com um status e um código estável. Não existe um tempo limite incorporado; passe o signal de um AbortController para cancelar você próprio um pedido lento.

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

Campos opcionais

Passe include: ["hostname"] para acrescentar uma pesquisa de DNS inverso para o IP em ligação. É opcional (opt-in) porque acrescenta um salto de rede extra, por isso só o peça se utilizar o campo.

TypeScript

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

O que este SDK não cobre

Este pacote apenas chama GET /v1/geo. Não tem métodos para pesquisa de IP, validação de e-mail, ou verificações de risco — esses são endpoints servidor-a-servidor autenticados com uma chave secreta, não com a chave publicável em torno da qual este SDK é construído. Chame-os diretamente via HTTP; consulte a referência de pesquisa de IP e o guia de autenticação.

Páginas relacionadas