@cloudsugar/axios-logger
Version:
An axios request logger.
28 lines (27 loc) • 773 B
TypeScript
import { AxiosInstance, AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios';
interface Options {
format?: (request: RequestData) => any[];
logger?: Logger;
}
interface Logger {
readonly info: (args?: any[]) => void;
readonly error: (args?: any[]) => void;
}
interface RequestData {
config: AxiosRequestConfig;
response: AxiosResponse | null;
error: AxiosError | null;
startTime: Date;
endTime: Date;
}
/**
* Decorates an Axios instance with logging
*
* @example
* import axiosDefault from 'axios';
* import { axiosLogger } from '@cloudsugar/axios-logger';
*
* const axios = axiosLogger(axios, {logger: console});
*/
export declare function axiosLogger(axios: AxiosInstance, options?: Options): AxiosInstance;
export {};