UNPKG

@goatlab/typesense

Version:

Modern TypeScript wrapper for Typesense search engine API

38 lines (37 loc) 1.27 kB
import { TypesenseRateLimitInfo } from '../typesense.model'; export interface ResiliencePolicyOptions { maxFailures?: number; resetTimeout?: number; retryDelay?: number; maxRetries?: number; onStateChange?: (state: 'open' | 'closed' | 'half-open', metadata?: any) => void; onRetry?: (attempt: number, error: any) => void; onRateLimitUpdate?: (info: TypesenseRateLimitInfo) => void; enabled?: boolean; } export declare class ResiliencePolicy { private options; private failures; private circuitOpenUntil; private rateLimitInfo; private retryAfterUntil; constructor(options?: ResiliencePolicyOptions); isCircuitOpen(): boolean; shouldRetry(retryCount: number, error: any): boolean; getRetryDelay(retryCount: number): number; recordSuccess(): void; recordFailure(): void; updateRateLimit(headers: Headers): void; getRateLimit(): TypesenseRateLimitInfo | null; getTimeUntilReset(): number | undefined; isRateLimited(): boolean; reset(): void; getStatus(): { failures: number; circuitOpen: boolean; circuitOpenUntil: number; rateLimited: boolean; retryAfterUntil: number; rateLimit: TypesenseRateLimitInfo | null; }; }