@variablesoftware/ts-retry-backoff
Version:
🎛️🔁🚀 A tiny, zero‑dependencies retry helper with exponential backoff + jitter—usable for KV, HTTP, Durable Objects, or any async function.
19 lines (18 loc) • 768 B
TypeScript
type BackoffFn = (_attempt: number, _baseMs: number) => number;
export declare const strategies: Record<string, BackoffFn>;
export interface RetryBackoffOptions {
maxRetries?: number;
baseDelayMs?: number;
minDelayMs?: number;
maxDelayMs?: number;
strategy?: BackoffFn;
jitter?: number;
retryOn?: (_err: unknown) => boolean;
onRetry?: (_err: unknown, _attempt: number, _delay: number) => void;
onSuccess?: (_result: unknown, _attempt: number) => void;
onGiveUp?: (_err: unknown, _attempt: number) => void;
signal?: AbortSignal;
}
export declare function delay(ms: number, signal?: AbortSignal): Promise<void>;
export declare function retryBackoff<T>(fn: () => Promise<T>, opts?: RetryBackoffOptions): Promise<T>;
export {};