Quickstart
Contoh ini memakai KomerceProvider, tapi semua provider berbagi contract ShippingProvider yang sama — ganti provider tinggal ganti satu baris config.
import { BiteshipProvider } from '@ongkir-sdk/biteship'import { KomerceProvider } from '@ongkir-sdk/komerce'import { ShipperProvider } from '@ongkir-sdk/shipper'
const provider = new KomerceProvider({ apiKey: process.env.RAJAONGKIR_API_KEY! })
const rates = await provider.getRates({ origin: { postalCode: '12440' }, destination: { postalCode: '12240' }, items: [{ weightGrams: 1000, value: 199000, quantity: 1 }],})
const tracking = await provider.trackShipment('AWB001', { courier: 'jne' })Provider Shipper memakai flow yang sama, tapi wajib postalCode di origin/destination (area_id di-resolve otomatis oleh adapter):
const shipper = new ShipperProvider({ apiKey: process.env.SHIPPER_API_KEY! })
const shipperRates = await shipper.getRates({ origin: { postalCode: '10110' }, destination: { postalCode: '40111' }, items: [{ weightGrams: 1000, value: 50000, quantity: 1 }],})Error handling
Semua error provider dinormalisasi ke ShippingSDKError. Gunakan isShippingSDKError() untuk guard type dan retryable untuk keputusan retry.
import { isShippingSDKError } from '@ongkir-sdk/core'
try { const rates = await provider.getRates({ origin, destination, items })} catch (err) { if (isShippingSDKError(err) && err.retryable) { // coba lagi — misal kuota provider sedang habis return retry() }}Selengkapnya di Error handling.
Contoh lengkap
examples/node-basic— contoh SDK langsungexamples/hono-api— contoh REST API pakai Hono