Watch-IP

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-sdk

Mulai 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.

Halaman terkait