wx-request-plus
Version:
增强型微信小程序请求库,支持错误处理、Promise、缓存、弱网处理、请求队列等功能
101 lines (100 loc) • 3.85 kB
TypeScript
import { WxRequestConfig, RequestConfig, Response, Method } from './types';
import Interceptor from './interceptor';
export default class WxRequest {
private defaults;
interceptors: {
request: Interceptor<RequestConfig>;
response: Interceptor<Response>;
};
private cacheAdapter;
private requestQueue;
static create(config?: WxRequestConfig): WxRequest;
constructor(config?: WxRequestConfig);
request<T = any>(config: RequestConfig & {
returnData?: true;
}): Promise<T>;
request<T = any>(config: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
request<T = any>(config: RequestConfig): Promise<Response<T> | T>;
request<T = any>(url: string, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
request<T = any>(url: string, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
request<T = any>(url: string, config?: RequestConfig): Promise<Response<T> | T>;
request<T = any>(url: string, method: Method, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
request<T = any>(url: string, method: Method, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
request<T = any>(url: string, method: Method, config?: RequestConfig): Promise<Response<T> | T>;
request<T = any>(url: string, data: any, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
request<T = any>(url: string, data: any, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
request<T = any>(url: string, data: any, config?: RequestConfig): Promise<Response<T> | T>;
private sendRequest;
private prepareFinalConfig;
private performRequest;
private handleRequestError;
private enhanceErrorMessage;
private cacheResponse;
private refreshCache;
get<T = any>(url: string, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
get<T = any>(url: string, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
post<T = any>(url: string, data?: any, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
post<T = any>(url: string, data?: any, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
put<T = any>(url: string, data?: any, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
put<T = any>(url: string, data?: any, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
delete<T = any>(url: string, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
delete<T = any>(url: string, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
head<T = any>(url: string, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
head<T = any>(url: string, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
options<T = any>(url: string, config?: RequestConfig & {
returnData?: true;
}): Promise<T>;
options<T = any>(url: string, config?: RequestConfig & {
returnData: false;
}): Promise<Response<T>>;
clearCache(): Promise<void>;
cancelRequests(filter: (config: RequestConfig) => boolean): void;
getStatus(): {
queue: {
queueSize: number;
processingSize: number;
offlineQueueSize: number;
isNetworkAvailable: boolean;
};
};
cancelAll(): void;
all<T>(requests: Array<Promise<T>>): Promise<T[]>;
all<T extends any[]>(requests: [...{
[K in keyof T]: Promise<T[K]>;
}]): Promise<T>;
spread<T, R>(callback: (...args: T[]) => R): (arr: T[]) => R;
}