ipink-util
Version:
util.js
66 lines (64 loc) • 2.03 kB
TypeScript
import { AxiosBasicCredentials, AxiosProxyConfig, BrowserProgressEvent, CancelToken, GenericAbortSignal, HttpStatusCode, IResponse, Method, MethodsHeaders, RawAxiosRequestHeaders, responseEncoding, TransitionalOptions } from './typing';
/**
* 参考 axios.AxiosProgressEvent
*/
interface AxiosProgressEvent {
loaded: number;
total?: number;
progress?: number;
bytes: number;
rate?: number;
estimated?: number;
upload?: boolean;
download?: boolean;
event?: BrowserProgressEvent;
}
/**
* 参考 axios.AxiosRequestConfig
*/
interface AxiosRequestConfig<D = any> {
url?: string;
method?: Method | string;
base_url?: string;
headers?: RawAxiosRequestHeaders & MethodsHeaders & Headers;
params?: any;
data?: D;
timeout?: number;
timeoutErrorMessage?: string;
withCredentials?: boolean;
auth?: AxiosBasicCredentials;
responseType?: ResponseType;
responseEncoding?: responseEncoding | string;
xsrfCookieName?: string;
xsrfHeaderName?: string;
onUploadProgress?: (progressEvent: AxiosProgressEvent) => void;
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void;
maxContentLength?: number;
validateStatus?: ((status: number) => boolean) | null;
maxBodyLength?: number;
maxRedirects?: number;
maxRate?: number;
beforeRedirect?: (options: Record<string, any>, responseDetails: {
headers: Record<string, string>;
statusCode: HttpStatusCode;
}) => void;
socketPath?: string | null;
transport?: any;
httpAgent?: any;
httpsAgent?: any;
proxy?: AxiosProxyConfig | false;
cancelToken?: CancelToken;
decompress?: boolean;
transitional?: TransitionalOptions;
signal?: GenericAbortSignal;
insecureHTTPParser?: boolean;
env?: {
FormData?: new (...args: any[]) => object;
};
[propName: string]: any;
}
/**
* 使用
*/
export declare const createHttp: () => <T>(config: AxiosRequestConfig) => Promise<IResponse<T>>;
export {};