UNPKG

safe-calls

Version:
28 lines (26 loc) 916 B
type RateLimitConfig = { concurrency: number; requestsPerInterval: number; intervalMs: number; retries?: number; }; declare class RateLimitManager<Service extends string = string> { #private; private limiters; private throttlers; private configs; constructor(options?: Partial<Record<Service, RateLimitConfig>>); /** * Wraps an async function with the rate limit and retry logic for the specified service. */ wrap<Args extends unknown[], Return>(service: Service, fn: (...args: Args) => Promise<Return>): (...args: Args) => Promise<Return>; /** * Updates the configuration for an existing service. */ updateService(service: Service, config: RateLimitConfig): void; /** * Returns the number of pending tasks for a service. */ getPendingCount(service: Service): number; } export { type RateLimitConfig, RateLimitManager };