js-xfetch
Version:
A Fetch request tool wrapper, convenient global management.
122 lines • 4.37 kB
TypeScript
declare enum XFetchContentType {
JSON = "application/json;charset=UTF-8",
FORM = "application/x-www-form-urlencoded;charset=UTF-8",
FILE = "multipart/form-data",
json = "application/json;charset=UTF-8",
form = "application/x-www-form-urlencoded;charset=UTF-8",
file = "multipart/form-data"
}
declare enum XFetchHttpMethod {
GET = "GET",
POST = "POST",
PUT = "PUT",
PATCH = "PATCH",
DELETE = "DELETE",
OPTIONS = "OPTIONS",
get = "GET",
post = "POST",
put = "PUT",
patch = "PATCH",
delete = "DELETE",
options = "OPTIONS"
}
interface XFetchRequestConfig {
params?: any;
data?: any;
headers?: XFetchHeader;
autoContentType?: boolean;
'Content-Type'?: string;
qsStringifyOptions?: {
arr2str?: boolean;
hasIndex?: boolean;
urlEncode?: boolean;
hasBrackets?: boolean;
};
[propName: string]: any;
}
interface XFetchHeader {
Origin?: string;
Referer?: string;
Cookie?: string | object;
Connection?: string;
'User-Agent'?: string;
'Content-Type'?: string;
Authorization?: string;
[propName: string]: any;
}
interface XFetchOptions {
retryConfig?: RetryConfig;
baseUrl?: string;
timeout?: number;
cancelDuplicatedRequest?: boolean;
requestHandler?: HandlerFunction;
responseHandler?: HandlerFunction;
errorHandler?: HandlerFunction;
requestFinally?: () => void;
setRequestHeaders?: HandlerFunction<object>;
[propName: string]: any;
}
interface HandlerFunction<T = any> {
(data: T): T;
}
interface RetryConfig {
retry: number;
delay: number;
}
declare const CODE_MSG: {
[status: number]: string;
};
export declare class XFetchClass {
timeout: number;
baseUrl: string;
private _requestHandler;
private _responseHandler;
private _errorHandler;
private _requestFinally;
private _setRequestHeaders;
private _pendingRequests;
private _cancelDuplicatedRequest;
private _retryConfig;
private _abortController;
private _whiteListAbortController;
constructor(options?: XFetchOptions);
private _requestInterceptor;
private _responseInterceptor;
private _errorInterceptor;
private _addPendingRequest;
private _removePendingRequest;
private _handleFetchResponse;
private _parseFetchResponse;
typeof(obj: any): string;
qsStringify(obj: any, options?: {
arr2str?: boolean;
hasIndex?: boolean;
urlEncode?: boolean;
hasBrackets?: boolean;
}): string;
qsParse(url?: string, key?: string): any;
private _timeoutPromise;
request(method: XFetchHttpMethod, url: string, config: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
sleep(milliseconds: number): Promise<unknown>;
checkStatus(response: Response): any;
get(url: string, params?: any, config?: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
post(url: string, data?: any, config?: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
patch(url: string, data?: any, config?: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
put(url: string, data?: any, config?: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
delete(url: string, data?: any, config?: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
postForm(url: string, data?: any, config?: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
postFile(url: string, files: File | File[], name?: string, hasBrackets?: boolean, hasIndex?: boolean, config?: XFetchRequestConfig, isWhiteList?: boolean): Promise<any>;
cancelRequest(message: string): XFetchClass;
cancelWhiteListRequest(message: string): XFetchClass;
getAbortController(): any;
getBaseURL(): string | undefined;
setBaseURL(url?: string): XFetchClass;
setRequestTimeout(timeout: number): XFetchClass;
getInstance(): XFetchClass;
isCancel(error: any): boolean;
create(options?: XFetchOptions): XFetchClass;
}
declare const XFetch: XFetchClass;
export { XFetch, XFetchContentType, XFetchHttpMethod, XFetchHeader, XFetchRequestConfig, XFetchOptions, CODE_MSG };
export default XFetch;
//# sourceMappingURL=index.d.ts.map