import { ApiClient, RateLimiter } from "bytekit";
const rateLimiter = new RateLimiter({
maxRequests: 50,
windowMs: 60_000,
});
const api = new ApiClient({
baseUrl: "https://api.example.com",
retryPolicy: {
maxAttempts: 3,
initialDelayMs: 200,
backoffMultiplier: 2,
},
circuitBreaker: {
failureThreshold: 5,
timeoutMs: 30_000,
},
interceptors: {
request: async (url, init) => {
await rateLimiter.waitForAllowance(url);
return [url, init];
},
},
});