@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
TypeScript
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