axios-master
Version:
Axios wrapper for advanced response time logging, retries, and token refresh.
28 lines (27 loc) • 1.05 kB
TypeScript
import { AxiosRequestConfig, AxiosResponse, AxiosError } from "axios";
type LogLevel = "DEBUG" | "INFO" | "WARN" | "ERROR" | "CRITICAL" | "TRACE";
type loggerJson = {
time: number;
request: AxiosRequestConfig | any;
response: AxiosResponse | any;
responseBody: JSON | any;
statusCode: number | string;
};
export type AxiosMasterLoggerType = {
log_levels: LogLevel;
message: string;
json: loggerJson;
};
interface MasterConfig {
name?: string;
log?: boolean;
timeout?: number;
logger?: (data: AxiosMasterLoggerType) => void;
shouldRetry?: boolean;
shouldRetryStatus?: number[];
retryFunction?: () => Promise<string>;
}
export type AxiosMasterError<T = unknown, D = any> = AxiosError;
export declare const axiosMasterMain: (default_config: AxiosRequestConfig, masterConfig: MasterConfig) => Promise<AxiosResponse | any>;
export declare const axiosMasterLogger: (default_config: AxiosRequestConfig, masterConfig: MasterConfig) => Promise<AxiosResponse | any>;
export default axiosMasterMain;