UNPKG

@bobmatnyc/ai-code-review

Version:

A TypeScript-based tool for automated code reviews using AI models from Google Gemini, Anthropic Claude, and OpenRouter

69 lines (68 loc) 1.63 kB
/** * @fileoverview Rate limiter for API requests. * * This module provides a rate limiter for API requests to prevent * exceeding API rate limits. It uses a simple token bucket algorithm * to limit the number of requests per second. */ /** * Rate limiter options */ interface RateLimiterOptions { /** * Maximum number of tokens in the bucket */ bucketSize: number; /** * Number of tokens added per second */ tokensPerSecond: number; /** * Initial number of tokens in the bucket */ initialTokens?: number; } /** * Rate limiter for API requests */ export declare class RateLimiter { private bucketSize; private tokensPerSecond; private tokens; private lastRefillTime; private waitQueue; /** * Create a new rate limiter * @param options Rate limiter options */ constructor(options: RateLimiterOptions); /** * Refill the token bucket based on elapsed time */ private refill; /** * Process the wait queue */ private processQueue; /** * Acquire a token from the bucket * @param timeoutMs Timeout in milliseconds * @returns Promise that resolves when a token is acquired */ acquire(timeoutMs?: number): Promise<void>; /** * Get the current number of tokens in the bucket * @returns Number of tokens */ getTokens(): number; /** * Get the current queue length * @returns Queue length */ getQueueLength(): number; } /** * Global rate limiter instance */ export declare const globalRateLimiter: RateLimiter; export {};