http-retrier
Version:
41 lines • 1.46 kB
TypeScript
import { AxiosHeaders, AxiosRequestConfig } from "axios";
import { httpStatusCodes } from "./statusCodes";
export type HttpStatusCodes = keyof typeof httpStatusCodes;
export type HttpStatusMessage = typeof httpStatusCodes[HttpStatusCodes];
export type HttpRetrierRetryOn = (response: HttpRetrierResponse) => boolean;
export type HttpRetrierLogger = (message: string) => void;
export type HttpRetrierOptions = Omit<AxiosRequestConfig, 'url' | "baseURL"> & Partial<HttpRetrierSettings>;
export interface HttpRetrierOutputConverter {
xml2json?: boolean;
custome?: (output: any) => any;
}
export interface WaitOptions {
attempt?: number;
exponentialBackoff?: boolean;
}
export interface HttpRetrierSettings {
title: string;
maxAttempts: number;
delay: number;
exponentialBackoff: boolean;
outputConverter: HttpRetrierOutputConverter;
logging: HttpRetrierLogging;
retryOn: HttpRetrierRetryOn;
}
export interface HttpRetrierResponse {
url: string;
method: string;
status: HttpStatusCodes;
statusText: string;
headers?: AxiosHeaders;
attempt: number;
input: any;
output: any;
}
export interface HttpRetrierLogging {
beforeStart?: (response: HttpRetrierResponse) => void;
beforeAttempt?: (response: HttpRetrierResponse) => void;
afterAttempt?: (response: HttpRetrierResponse) => void;
afterDone?: (response: HttpRetrierResponse) => void;
}
//# sourceMappingURL=types.d.ts.map