axios-miniprogram/src/types.ts

177 lines
3.5 KiB
TypeScript
Raw Normal View History

2020-04-14 23:45:21 +08:00
/*
* @Author: early-autumn
* @Date: 2020-04-13 15:23:53
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-14 23:42:10
*/
import 'miniprogram-api-typings';
export declare type AnyObject = Record<string, any>;
export declare type Params = AnyObject;
export declare type Data = AxiosRequestConfig['data'];
/**
*
*/
export declare type Method =
| 'options'
| 'get'
| 'head'
| 'post'
| 'put'
| 'delete'
| 'trace'
| 'connect'
| WechatMiniprogram.RequestOption['method'];
/**
*
*/
export type AxiosRequestConfig = Omit<WechatMiniprogram.RequestOption, 'method' | 'success' | 'fail' | 'complete'> & {
/** HTTP
*
*
* - 'options': HTTP OPTIONS;
* - 'OPTIONS': HTTP OPTIONS;
* - 'get': HTTP GET;
* - 'GET': HTTP GET;
* - 'head': HTTP HEAD;
* - 'HEAD': HTTP HEAD;
* - 'post': HTTP POST;
* - 'POST': HTTP POST;
* - 'put': HTTP PUT;
* - 'PUT': HTTP PUT;
* - 'delete': HTTP DELETE;
* - 'DELETE': HTTP DELETE;
* - 'trace': HTTP TRACE;
* - 'TRACE': HTTP TRACE;
* - 'connect': HTTP CONNECT;
* - 'CONNECT': HTTP CONNECT;
*/
method?: Method;
/**
* URL
*/
params?: Params;
/**
* http2
*/
enableHttp2?: boolean;
/**
* quic
*/
enableQuic?: boolean;
/**
* cache
*/
enableCache?: boolean;
/**
*
*/
cancelToken?: CancelToken;
};
/**
*
*/
export interface AxiosResponse extends WechatMiniprogram.RequestSuccessCallbackResult {
config: AxiosRequestConfig;
}
export declare type AxiosPromise = Promise<AxiosResponse>;
export type AxiosMethodConfig = Omit<AxiosRequestConfig, 'url'>;
/**
* Axios
*/
export interface Axios {
/**
*
* @param config 000
*/
request(config: AxiosRequestConfig): AxiosPromise;
options(url: string, params?: Params, config?: AxiosMethodConfig): AxiosPromise;
get(url: string, params?: Params, config?: AxiosMethodConfig): AxiosPromise;
head(url: string, params?: Params, config?: AxiosMethodConfig): AxiosPromise;
post(url: string, data?: Data, config?: AxiosMethodConfig): AxiosPromise;
put(url: string, data?: Data, config?: AxiosMethodConfig): AxiosPromise;
delete(url: string, params?: Params, config?: AxiosMethodConfig): AxiosPromise;
trace(url: string, params?: Data, config?: AxiosMethodConfig): AxiosPromise;
connect(url: string, params?: Data, config?: AxiosMethodConfig): AxiosPromise;
}
export interface AxiosInstance extends Axios {
(config: AxiosRequestConfig): AxiosPromise;
}
// export interface AxiosError extends Error {
// isAxiosError: boolean;
// config: AxiosRequestConfig;
// response?: AxiosResponse;
// }
/**
*
*/
export interface Cancel {
/**
*
*/
message?: string;
/**
*
*/
toString(): string;
}
/**
*
*/
export interface CancelAction {
(message?: string): void;
}
/**
*
*/
export interface CancelExecutor {
(cancel: CancelAction): void;
}
/**
*
*/
export interface CancelToken {
/**
*
*/
reason?: Cancel;
/**
*
*/
listener: Promise<Cancel>;
/**
*
*/
throwIfRequested(): void;
}
/**
* source
*/
export interface CancelTokenSource {
token: CancelToken;
cancel: CancelAction;
}