Menggunakan Watch-IP dengan JavaScript dan TypeScript
@digitload/watch-ip-sdk (npm, v0.1.1) membungkus GET /v1/geo dalam klien kecil dengan tipe TypeScript untuk setiap field respons dan tanpa dependensi runtime.
Instalasi
Membutuhkan Node.js 18+ atau browser modern mana pun — keduanya menyediakan fetch global yang menjadi dasar paket ini.
npm
npm install @digitload/watch-ip-sdkMulai cepat
Buat klien dengan publishable key Anda dan panggil getGeo(). GeoResponse yang dikembalikan sepenuhnya bertipe; setiap field kecuali ip dan isEUCountry bersifat nullable, jadi periksa sebuah field sebelum me-render-nya.
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);Penanganan error dan timeout
Setiap kegagalan — request yang ditolak (key tidak valid, origin tidak diizinkan, rate limit) atau error jaringan — melempar WatchIPError dengan sebuah status dan kode yang stabil. Tidak ada timeout bawaan; kirim signal dari sebuah AbortController untuk membatalkan request yang lambat sendiri.
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);
}
}Field opsional
Kirim include: ["hostname"] untuk menambahkan pencarian PTR bagi IP yang terhubung. Ini opt-in karena menambah satu hop jaringan ekstra, jadi minta hanya jika Anda memakai field-nya.
TypeScript
const geo = await client.getGeo({ include: ["hostname"] });Yang tidak dicakup SDK ini
Paket ini hanya memanggil GET /v1/geo. Tidak ada method untuk pencarian IP, validasi email, atau pemeriksaan risiko — itu adalah endpoint server-ke-server yang diautentikasi dengan secret key, bukan publishable key yang menjadi dasar SDK ini. Panggil langsung lewat HTTP; lihat referensi pencarian IP dan panduan autentikasi.