Modulesapi
api
HTTP client with retry, error wrapping, and rate limit detection
Overview
The api module provides a configurable HTTP client with automatic retries on 5xx errors, rate limit detection, and consistent error wrapping.
No peer dependencies required.
Quick Start
import { createApiClient } from '@jamaalbuilds/ai-toolkit/api';
const client = createApiClient({
baseUrl: 'https://api.example.com',
headers: { Authorization: `Bearer ${token}` },
});
const data = await client.get('/users');
API Reference
createApiClient(config)
Create an HTTP client with retry and error handling.
function createApiClient(config: ApiClientConfig): ApiClient
| Parameter | Type | Description |
|---|---|---|
config.baseUrl | string | Base URL for all requests |
config.headers | Record<string, string> | Default headers |
config.apiKey | string | API key for authentication |
config.timeout | number | Request timeout in ms |
config.maxRetries | number | Max retry attempts (default: 2) |
const client = createApiClient({
baseUrl: 'https://api.example.com',
maxRetries: 3,
timeout: 5000,
});
const response = await client.post('/endpoint', { key: 'value' });
Types
ApiClient— client with get(), post(), put(), patch(), delete() methodsApiClientConfig— baseUrl, apiKey, timeout, maxRetries, headers