UNPKG

@pulzar/core

Version:

Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support

37 lines 1.33 kB
export interface RetryOptions { maxAttempts?: number; baseDelay?: number; maxDelay?: number; backoffMultiplier?: number; jitter?: boolean; retryCondition?: (error: any) => boolean; } export type RetryResult<T> = { success: true; data: T; attempts: number; totalTime: number; } | { success: false; error: any; attempts: number; totalTime: number; }; export declare class RetryError extends Error { attempts: number; lastError: any; constructor(message: string, attempts: number, lastError: any); } export declare function retry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<RetryResult<T>>; export declare function sleep(ms: number): Promise<void>; export declare function withRetry<T extends (...args: any[]) => Promise<any>>(fn: T, options?: RetryOptions): T; export declare const retryConditions: { always: () => boolean; networkErrors: (error: any) => boolean; serverErrors: (error: any) => boolean; rateLimitErrors: (error: any) => boolean; timeoutErrors: (error: any) => any; }; export declare function calculateBackoff(attempt: number, baseDelay?: number, maxDelay?: number, backoffMultiplier?: number): number; export declare function addJitter(delay: number, factor?: number): number; //# sourceMappingURL=retry.d.ts.map