Skip to content

First Request

import { BigshipClient, isSuccessResponse } from '@agamya/bigship-sdk';
const client = new BigshipClient({
baseURL: process.env.BIGSHIP_BASE_URL!,
userName: process.env.BIGSHIP_USER_NAME!,
password: process.env.BIGSHIP_PASSWORD!,
accessKey: process.env.BIGSHIP_ACCESS_KEY!,
});
// Check wallet balance
const balance = await client.getWalletBalance();
if (isSuccessResponse(balance)) {
console.log('Balance:', balance.data); // → "5000.00"
}

When you call getWalletBalance():

  1. Authenticate — SDK checks for a cached token; if missing/expired, calls login endpoint
  2. Make request — Sends GET /api/Wallet/balance/get with auth header
  3. Validate response — Parses and validates the response with Zod
  4. Dispatch hooks — Fires onResponse or onError hooks
  5. Return — Returns typed ApiResponse<{ balance: string }>

All methods return ApiResponse<T>:

interface ApiResponse<T> {
status: 'success' | 'error';
data: T | null;
message?: string;
}

Use type guards to safely access data:

import { isSuccessResponse, isFailedResponse } from '@agamya/bigship-sdk';
const result = await client.getCourierList('b2c');
if (isSuccessResponse(result)) {
console.log(result.data); // Typed as Courier[]
} else if (isFailedResponse(result)) {
console.error(result.message);
}