UNPKG

popsicle-retry

Version:
30 lines (29 loc) 1.09 kB
import { CommonRequest, CommonResponse } from "servie/dist/common"; /** * Browser detection. */ declare global { namespace NodeJS { interface Process { browser?: boolean; } } } /** * Check if the request should be attempted again. */ export declare function retryAllowed(error?: Error & { code?: string; }, response?: CommonResponse): boolean; /** * Init a default retry function. */ export declare function retries(count?: number, isRetryAllowed?: typeof retryAllowed): (error: Error | undefined, response: CommonResponse<unknown> | undefined, iter: number) => number; /** * Middleware signature. */ export declare type App<T extends CommonRequest, U extends CommonResponse> = (req: T, next: () => Promise<U>) => Promise<U>; /** * Middleware for running retry logic. */ export declare function retry<T extends CommonRequest, U extends CommonResponse>(fn: App<T, U>, shouldRetry?: (error: Error | undefined, response: CommonResponse | undefined, iter: number) => number, preFlight?: (req: T, iter: number, origRequest: T) => T): App<T, U>;