ucc-utils
Version:
53 lines (49 loc) • 1.93 kB
TypeScript
import { AxiosResponse, AxiosRequestConfig, InternalAxiosRequestConfig, AxiosInstance } from 'axios';
interface IAppInterceptors<T = AxiosResponse> {
requestSuccessFn?: (config: AxiosRequestConfig) => InternalAxiosRequestConfig | any;
requestFailureFn?: (err: any) => any;
responseSuccessFn?: (res: T) => T;
responseFailureFn?: (err: any) => any;
}
interface IAppRequestConfig<T = AxiosResponse> extends Partial<InternalAxiosRequestConfig> {
interceptors?: IAppInterceptors<T>;
}
/**
* AppRequest类
* @class AppRequest
* @param {IAppRequestConfig} config
* @description AppRequest类
* @example
* ```js
* const request = new AppRequest({
* baseURL: '',
* timeout: 5000,
* interceptors: {
* requestSuccessFn(cfg) {
* return cfg
* },
* requestFailureFn(){},
* responseSuccessFn(){},
* responseFailureFn(){}
* }
* })
* ```
*/
declare class AppRequest {
instance: AxiosInstance;
constructor(config: IAppRequestConfig);
request<T = any>(config: IAppRequestConfig<T>): Promise<T>;
get<T = any>(config: IAppRequestConfig<T>): Promise<T>;
post<T = any>(config: IAppRequestConfig<T>): Promise<T>;
delete<T = any>(config: IAppRequestConfig<T>): Promise<T>;
patch<T = any>(config: IAppRequestConfig<T>): Promise<T>;
put<T = any>(config: IAppRequestConfig<T>): Promise<T>;
}
type request_AppRequest = AppRequest;
declare const request_AppRequest: typeof AppRequest;
type request_IAppInterceptors<T = AxiosResponse> = IAppInterceptors<T>;
type request_IAppRequestConfig<T = AxiosResponse> = IAppRequestConfig<T>;
declare namespace request {
export { request_AppRequest as AppRequest, type request_IAppInterceptors as IAppInterceptors, type request_IAppRequestConfig as IAppRequestConfig, AppRequest as default };
}
export { AppRequest as A, type IAppInterceptors as I, type IAppRequestConfig as a, request as r };