Watch-IP

Usa Watch-IP con JavaScript y TypeScript

@digitload/watch-ip-sdk (npm, v0.1.1) envuelve GET /v1/geo en un cliente pequeño con tipos de TypeScript para cada campo de la respuesta y sin dependencias en tiempo de ejecución.

Instalación

Requiere Node.js 18+ o cualquier navegador moderno: ambos ofrecen el fetch global sobre el que se construye este paquete.

npm

npm install @digitload/watch-ip-sdk

Inicio rápido

Crea un cliente con tu clave publicable y llama a getGeo(). El GeoResponse devuelto está completamente tipado; todos los campos excepto ip e isEUCountry son anulables, así que comprueba un campo antes de renderizarlo.

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

Manejo de errores y tiempos de espera

Cada falla —una solicitud rechazada (clave no válida, origen no permitido, límite de tasa) o un error de red— lanza un WatchIPError con un status y un code estable. No hay tiempo de espera integrado; pasa la señal de un AbortController para cancelar tú mismo una solicitud lenta.

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 opcionales

Pasa include: ["hostname"] para añadir una consulta DNS inversa para la IP que se conecta. Es opcional porque agrega un salto de red adicional, así que solicítalo solo si usas el campo.

TypeScript

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

Lo que este SDK no cubre

Este paquete solo llama a GET /v1/geo. No tiene métodos para IP lookup, validación de correo o comprobaciones de riesgo: esos son endpoints de servidor a servidor autenticados con una clave secreta, no con la clave publicable en torno a la cual está construido este SDK. Llámalos directamente por HTTP; consulta la referencia de IP lookup y la guía de autenticación.

Páginas relacionadas