popsicle-retry
Version:
Enable request retry for Popsicle
30 lines (29 loc) • 1.09 kB
TypeScript
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>;