feat: 支持自定义配置
parent
01e4167ad4
commit
b15b31ee55
|
@ -17,22 +17,12 @@ axios.defaults.adapter = function adapter(adapterConfig) {
|
||||||
data,
|
data,
|
||||||
// 请求头 同 headers
|
// 请求头 同 headers
|
||||||
headers,
|
headers,
|
||||||
// 请求头 同 headers
|
|
||||||
headers,
|
|
||||||
// 响应数据格式
|
// 响应数据格式
|
||||||
dataType,
|
dataType,
|
||||||
// 响应数据类型
|
// 响应数据类型
|
||||||
responseType,
|
responseType,
|
||||||
// 超时时间
|
// 超时时间
|
||||||
timeout,
|
timeout,
|
||||||
// 开启 http2
|
|
||||||
enableHttp2,
|
|
||||||
// 开启 quic
|
|
||||||
enableQuic,
|
|
||||||
// 开启 cache
|
|
||||||
enableCache,
|
|
||||||
// 验证 ssl 证书
|
|
||||||
sslVerify,
|
|
||||||
// 成功的回调函数
|
// 成功的回调函数
|
||||||
success,
|
success,
|
||||||
// 失败的回调函数
|
// 失败的回调函数
|
||||||
|
@ -46,7 +36,7 @@ axios.defaults.adapter = function adapter(adapterConfig) {
|
||||||
url,
|
url,
|
||||||
method,
|
method,
|
||||||
data,
|
data,
|
||||||
headers,
|
header: headers,
|
||||||
success,
|
success,
|
||||||
fail,
|
fail,
|
||||||
});
|
});
|
||||||
|
@ -54,8 +44,8 @@ axios.defaults.adapter = function adapter(adapterConfig) {
|
||||||
return wx.uploadFile({
|
return wx.uploadFile({
|
||||||
url,
|
url,
|
||||||
method,
|
method,
|
||||||
data,
|
formData: data,
|
||||||
headers,
|
header: headers,
|
||||||
success,
|
success,
|
||||||
fail,
|
fail,
|
||||||
});
|
});
|
||||||
|
@ -63,8 +53,8 @@ axios.defaults.adapter = function adapter(adapterConfig) {
|
||||||
return wx.downloadFile({
|
return wx.downloadFile({
|
||||||
url,
|
url,
|
||||||
method,
|
method,
|
||||||
data,
|
filePath: data.filePath,
|
||||||
headers,
|
header: headers,
|
||||||
success,
|
success,
|
||||||
fail,
|
fail,
|
||||||
});
|
});
|
||||||
|
|
108
src/adapter.ts
108
src/adapter.ts
|
@ -8,8 +8,6 @@ import {
|
||||||
import { assert, throwError } from './helpers/utils';
|
import { assert, throwError } from './helpers/utils';
|
||||||
import {
|
import {
|
||||||
AxiosProgressCallback,
|
AxiosProgressCallback,
|
||||||
AxiosRequestConfig,
|
|
||||||
AxiosRequestData,
|
|
||||||
AxiosRequestFormData,
|
AxiosRequestFormData,
|
||||||
AxiosRequestHeaders,
|
AxiosRequestHeaders,
|
||||||
AxiosResponse,
|
AxiosResponse,
|
||||||
|
@ -28,12 +26,60 @@ export type AxiosAdapterRequestMethod =
|
||||||
| 'TRACE'
|
| 'TRACE'
|
||||||
| 'CONNECT';
|
| 'CONNECT';
|
||||||
|
|
||||||
export interface AxiosAdapterRequestConfig extends AxiosRequestConfig {
|
export interface AxiosAdapterResponse<TData = unknown> extends AnyObject {
|
||||||
type: AxiosAdapterRequestType;
|
status: number;
|
||||||
method: AxiosAdapterRequestMethod;
|
statusText: string;
|
||||||
|
headers: AnyObject;
|
||||||
|
data: TData;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AxiosAdapterResponseError extends AnyObject {
|
||||||
|
status: number;
|
||||||
|
statusText: string;
|
||||||
|
headers: AnyObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AxiosAdapterRequestConfig extends AnyObject {
|
||||||
|
/**
|
||||||
|
* 请求类型
|
||||||
|
*/
|
||||||
|
type: 'request' | 'upload' | 'download';
|
||||||
|
/**
|
||||||
|
* 开发者服务器接口地址
|
||||||
|
*/
|
||||||
url: string;
|
url: string;
|
||||||
success(response: AxiosResponse): void;
|
/**
|
||||||
fail(error: AxiosResponseError): void;
|
* HTTP 请求方法
|
||||||
|
*/
|
||||||
|
method: AxiosAdapterRequestMethod;
|
||||||
|
/**
|
||||||
|
* 请求的数据
|
||||||
|
*/
|
||||||
|
data?: AnyObject;
|
||||||
|
/**
|
||||||
|
* 请求头
|
||||||
|
*/
|
||||||
|
headers?: AnyObject;
|
||||||
|
/**
|
||||||
|
* 返回的数据格式
|
||||||
|
*/
|
||||||
|
dataType?: 'json' | '其他';
|
||||||
|
/**
|
||||||
|
* 响应的数据类型
|
||||||
|
*/
|
||||||
|
responseType?: 'text' | 'arraybuffer';
|
||||||
|
/**
|
||||||
|
* 超时时间,单位为毫秒。默认值为 60000
|
||||||
|
*/
|
||||||
|
timeout?: number;
|
||||||
|
/**
|
||||||
|
* 成功的回调
|
||||||
|
*/
|
||||||
|
success(response: AxiosAdapterResponse): void;
|
||||||
|
/**
|
||||||
|
* 失败的回调
|
||||||
|
*/
|
||||||
|
fail(error: AxiosAdapterResponseError): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AxiosAdapterBaseOptions extends AxiosAdapterRequestConfig {
|
export interface AxiosAdapterBaseOptions extends AxiosAdapterRequestConfig {
|
||||||
|
@ -47,8 +93,7 @@ export interface AxiosAdapterUploadOptions extends AxiosAdapterBaseOptions {
|
||||||
name: string;
|
name: string;
|
||||||
fileName: string;
|
fileName: string;
|
||||||
fileType: 'image' | 'video' | 'audio';
|
fileType: 'image' | 'video' | 'audio';
|
||||||
hideLoading?: boolean;
|
formData?: AnyObject;
|
||||||
formData?: AxiosRequestData;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AxiosAdapterDownloadOptions extends AxiosAdapterBaseOptions {
|
export interface AxiosAdapterDownloadOptions extends AxiosAdapterBaseOptions {
|
||||||
|
@ -167,7 +212,7 @@ export function createAdapter(platform: AxiosPlatform): AxiosAdapter {
|
||||||
'上传文件时 data.filePath 需要是一个 string',
|
'上传文件时 data.filePath 需要是一个 string',
|
||||||
);
|
);
|
||||||
|
|
||||||
const { fileName, filePath, fileType, hideLoading, ...formData } =
|
const { fileName, filePath, fileType, ...formData } =
|
||||||
baseOptions.data as AxiosRequestFormData;
|
baseOptions.data as AxiosRequestFormData;
|
||||||
const options = {
|
const options = {
|
||||||
...baseOptions,
|
...baseOptions,
|
||||||
|
@ -175,7 +220,6 @@ export function createAdapter(platform: AxiosPlatform): AxiosAdapter {
|
||||||
fileName: fileName,
|
fileName: fileName,
|
||||||
filePath,
|
filePath,
|
||||||
fileType: fileType ?? 'image',
|
fileType: fileType ?? 'image',
|
||||||
hideLoading,
|
|
||||||
formData,
|
formData,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -200,29 +244,12 @@ export function createAdapter(platform: AxiosPlatform): AxiosAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
function transformResult(result: AnyObject): void {
|
function transformResult(result: AnyObject): void {
|
||||||
if (!isUndefined(result.statusCode)) {
|
result.status = result.status || isUndefined(result.data) ? 400 : 200;
|
||||||
|
if (result.statusCode) {
|
||||||
result.status = result.statusCode;
|
result.status = result.statusCode;
|
||||||
delete result.statusCode;
|
delete result.statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isUndefined(result.status)) {
|
|
||||||
result.status = isUndefined(result.data) ? 400 : 200;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isUndefined(result.header)) {
|
|
||||||
result.headers = result.header;
|
|
||||||
delete result.header;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isUndefined(result.headers)) {
|
|
||||||
result.headers = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isUndefined(result.errMsg)) {
|
|
||||||
result.statusText = result.errMsg;
|
|
||||||
delete result.errMsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isUndefined(result.statusText)) {
|
if (isUndefined(result.statusText)) {
|
||||||
result.statusText =
|
result.statusText =
|
||||||
result.status === 200
|
result.status === 200
|
||||||
|
@ -231,6 +258,17 @@ export function createAdapter(platform: AxiosPlatform): AxiosAdapter {
|
||||||
? 'Bad Adapter'
|
? 'Bad Adapter'
|
||||||
: '';
|
: '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result.headers = result.headers || {};
|
||||||
|
if (result.header) {
|
||||||
|
result.headers = result.header;
|
||||||
|
delete result.header;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.errMsg) {
|
||||||
|
result.statusText = result.errMsg;
|
||||||
|
delete result.errMsg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function transformOptions(
|
function transformOptions(
|
||||||
|
@ -251,21 +289,19 @@ export function createAdapter(platform: AxiosPlatform): AxiosAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
function injectDownloadData(response: AnyObject): void {
|
function injectDownloadData(response: AnyObject): void {
|
||||||
if (!isPlainObject(response.data)) {
|
response.data = response.data || {};
|
||||||
response.data = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isUndefined(response.tempFilePath)) {
|
if (response.tempFilePath) {
|
||||||
response.data.tempFilePath = response.tempFilePath;
|
response.data.tempFilePath = response.tempFilePath;
|
||||||
delete response.tempFilePath;
|
delete response.tempFilePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isUndefined(response.apFilePath)) {
|
if (response.apFilePath) {
|
||||||
response.data.tempFilePath = response.apFilePath;
|
response.data.tempFilePath = response.apFilePath;
|
||||||
delete response.apFilePath;
|
delete response.apFilePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isUndefined(response.filePath)) {
|
if (response.filePath) {
|
||||||
response.data.filePath = response.filePath;
|
response.data.filePath = response.filePath;
|
||||||
delete response.filePath;
|
delete response.filePath;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ import { AxiosAdapter, createAdapter, AxiosPlatform } from './adapter';
|
||||||
import Axios, {
|
import Axios, {
|
||||||
AxiosConstructor,
|
AxiosConstructor,
|
||||||
AxiosRequestConfig,
|
AxiosRequestConfig,
|
||||||
|
AxiosRequestHeaders,
|
||||||
AxiosResponse,
|
AxiosResponse,
|
||||||
} from './core/Axios';
|
} from './core/Axios';
|
||||||
import { CancelToken, CancelTokenConstructor, isCancel } from './core/cancel';
|
import { CancelToken, CancelTokenConstructor, isCancel } from './core/cancel';
|
||||||
|
@ -18,6 +19,7 @@ export interface AxiosInstance extends Axios {
|
||||||
|
|
||||||
export interface AxiosStatic extends AxiosInstance {
|
export interface AxiosStatic extends AxiosInstance {
|
||||||
Axios: AxiosConstructor;
|
Axios: AxiosConstructor;
|
||||||
|
defaults: AxiosRequestConfig & { headers: Required<AxiosRequestHeaders> };
|
||||||
CancelToken: CancelTokenConstructor;
|
CancelToken: CancelTokenConstructor;
|
||||||
create(defaults?: AxiosRequestConfig): AxiosInstance;
|
create(defaults?: AxiosRequestConfig): AxiosInstance;
|
||||||
createAdapter(platform: AxiosPlatform): AxiosAdapter;
|
createAdapter(platform: AxiosPlatform): AxiosAdapter;
|
||||||
|
|
|
@ -1,16 +1,20 @@
|
||||||
import { buildURL } from '../helpers/url';
|
import { buildURL } from '../helpers/url';
|
||||||
import { mergeConfig } from './mergeConfig';
|
import { mergeConfig } from './mergeConfig';
|
||||||
import {
|
import {
|
||||||
AxiosAdapterRequestMethod,
|
|
||||||
AxiosAdapter,
|
AxiosAdapter,
|
||||||
|
AxiosAdapterRequestMethod,
|
||||||
AxiosAdapterTask,
|
AxiosAdapterTask,
|
||||||
|
AxiosAdapterResponse,
|
||||||
|
AxiosAdapterResponseError,
|
||||||
|
AxiosAdapterRequestConfig,
|
||||||
} from '../adapter';
|
} from '../adapter';
|
||||||
import { CancelToken } from './cancel';
|
import { CancelToken } from './cancel';
|
||||||
import dispatchRequest from './dispatchRequest';
|
import dispatchRequest from './dispatchRequest';
|
||||||
import InterceptorManager from './InterceptorManager';
|
import InterceptorManager from './InterceptorManager';
|
||||||
import { AxiosTransformer } from './transformData';
|
import { AxiosTransformer } from './transformData';
|
||||||
|
|
||||||
export type AxiosRequestMethodAlias =
|
export type AxiosRequestMethod =
|
||||||
|
| AxiosAdapterRequestMethod
|
||||||
| 'options'
|
| 'options'
|
||||||
| 'get'
|
| 'get'
|
||||||
| 'head'
|
| 'head'
|
||||||
|
@ -20,23 +24,21 @@ export type AxiosRequestMethodAlias =
|
||||||
| 'trace'
|
| 'trace'
|
||||||
| 'connect';
|
| 'connect';
|
||||||
|
|
||||||
export type AxiosRequestMethod =
|
export interface AxiosRequestHeaders extends AnyObject {
|
||||||
| AxiosAdapterRequestMethod
|
options?: AnyObject;
|
||||||
| AxiosRequestMethodAlias;
|
get?: AnyObject;
|
||||||
|
head?: AnyObject;
|
||||||
|
post?: AnyObject;
|
||||||
|
put?: AnyObject;
|
||||||
|
delete?: AnyObject;
|
||||||
|
trace?: AnyObject;
|
||||||
|
connect?: AnyObject;
|
||||||
|
}
|
||||||
|
|
||||||
export type AxiosRequestHeaders = AnyObject;
|
export interface AxiosRequestFormData extends AnyObject {
|
||||||
|
|
||||||
export type AxiosRequestParams = AnyObject;
|
|
||||||
|
|
||||||
export type AxiosRequestData = AnyObject;
|
|
||||||
|
|
||||||
export type AxiosResponseHeaders = AnyObject;
|
|
||||||
|
|
||||||
export interface AxiosRequestFormData extends AxiosRequestData {
|
|
||||||
fileName: string;
|
fileName: string;
|
||||||
filePath: string;
|
filePath: string;
|
||||||
fileType?: 'image' | 'video' | 'audio';
|
fileType?: 'image' | 'video' | 'audio';
|
||||||
hideLoading?: boolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AxiosProgressEvent {
|
export interface AxiosProgressEvent {
|
||||||
|
@ -49,48 +51,84 @@ export interface AxiosProgressCallback {
|
||||||
(event: AxiosProgressEvent): void;
|
(event: AxiosProgressEvent): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AxiosRequestConfig {
|
export interface AxiosRequestConfig
|
||||||
|
extends Omit<
|
||||||
|
Partial<AxiosAdapterRequestConfig>,
|
||||||
|
'type' | 'method' | 'success' | 'fail'
|
||||||
|
> {
|
||||||
|
/**
|
||||||
|
* 请求适配器
|
||||||
|
*/
|
||||||
adapter?: AxiosAdapter;
|
adapter?: AxiosAdapter;
|
||||||
|
/**
|
||||||
|
* 基础路径
|
||||||
|
*/
|
||||||
baseURL?: string;
|
baseURL?: string;
|
||||||
cancelToken?: CancelToken;
|
/**
|
||||||
data?: AxiosRequestData | AxiosRequestFormData | AxiosRequestFormData;
|
* 请求参数
|
||||||
dataType?: 'json' | '其他';
|
*/
|
||||||
download?: boolean;
|
params?: AnyObject;
|
||||||
enableHttp2?: boolean;
|
/**
|
||||||
enableQuic?: boolean;
|
* 请求数据
|
||||||
enableCache?: boolean;
|
*/
|
||||||
errorHandler?: (error: unknown) => Promise<unknown>;
|
data?: AnyObject | AxiosRequestFormData;
|
||||||
|
/**
|
||||||
|
* 请求头
|
||||||
|
*/
|
||||||
headers?: AxiosRequestHeaders;
|
headers?: AxiosRequestHeaders;
|
||||||
|
/**
|
||||||
|
* 请求方法
|
||||||
|
*/
|
||||||
method?: AxiosRequestMethod;
|
method?: AxiosRequestMethod;
|
||||||
onUploadProgress?: AxiosProgressCallback;
|
/**
|
||||||
onDownloadProgress?: AxiosProgressCallback;
|
* 取消令牌
|
||||||
params?: AxiosRequestParams;
|
*/
|
||||||
paramsSerializer?: (params?: AxiosRequestParams) => string;
|
cancelToken?: CancelToken;
|
||||||
responseType?: 'text' | 'arraybuffer';
|
/**
|
||||||
sslVerify?: boolean;
|
* 上传
|
||||||
transformRequest?: AxiosTransformer | AxiosTransformer[];
|
*/
|
||||||
transformResponse?: AxiosTransformer | AxiosTransformer[];
|
|
||||||
timeout?: number;
|
|
||||||
upload?: boolean;
|
upload?: boolean;
|
||||||
url?: string;
|
/**
|
||||||
|
* 下载
|
||||||
|
*/
|
||||||
|
download?: boolean;
|
||||||
|
/**
|
||||||
|
* 转换请求数据
|
||||||
|
*/
|
||||||
|
transformRequest?: AxiosTransformer | AxiosTransformer[];
|
||||||
|
/**
|
||||||
|
* 转换响应数据
|
||||||
|
*/
|
||||||
|
transformResponse?: AxiosTransformer | AxiosTransformer[];
|
||||||
|
/**
|
||||||
|
* 异常梳处理
|
||||||
|
*/
|
||||||
|
errorHandler?: (error: unknown) => Promise<unknown>;
|
||||||
|
/**
|
||||||
|
* 监听上传进度
|
||||||
|
*/
|
||||||
|
onUploadProgress?: AxiosProgressCallback;
|
||||||
|
/**
|
||||||
|
* 监听下载进度
|
||||||
|
*/
|
||||||
|
onDownloadProgress?: AxiosProgressCallback;
|
||||||
|
/**
|
||||||
|
* 请求参数系列化函数
|
||||||
|
*/
|
||||||
|
paramsSerializer?: (params?: AnyObject) => string;
|
||||||
|
/**
|
||||||
|
* 校验状态码
|
||||||
|
*/
|
||||||
validateStatus?: (status: number) => boolean;
|
validateStatus?: (status: number) => boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AxiosResponse<TData = unknown> {
|
export interface AxiosResponse<TData = unknown>
|
||||||
status: number;
|
extends AxiosAdapterResponse<TData> {
|
||||||
statusText: string;
|
|
||||||
headers: AxiosResponseHeaders;
|
|
||||||
data: TData;
|
|
||||||
config?: AxiosRequestConfig;
|
config?: AxiosRequestConfig;
|
||||||
request?: AxiosAdapterTask;
|
request?: AxiosAdapterTask;
|
||||||
cookies?: string[];
|
|
||||||
profile?: AnyObject;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AxiosResponseError extends AnyObject {
|
export interface AxiosResponseError extends AxiosAdapterResponseError {
|
||||||
status: number;
|
|
||||||
statusText: string;
|
|
||||||
headers: AxiosResponseHeaders;
|
|
||||||
config?: AxiosRequestConfig;
|
config?: AxiosRequestConfig;
|
||||||
request?: AxiosAdapterTask;
|
request?: AxiosAdapterTask;
|
||||||
}
|
}
|
||||||
|
@ -149,87 +187,67 @@ export default class Axios {
|
||||||
url: string,
|
url: string,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutParams<TData>(
|
return this._req<TData>('options', url, undefined, config);
|
||||||
'options',
|
|
||||||
url,
|
|
||||||
undefined,
|
|
||||||
config,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public get<TData = unknown>(
|
public get<TData = unknown>(
|
||||||
url: string,
|
url: string,
|
||||||
params?: AxiosRequestParams,
|
params?: AnyObject,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutParams<TData>('get', url, params, config);
|
return this._req<TData>('get', url, params, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
public head<TData = unknown>(
|
public head<TData = unknown>(
|
||||||
url: string,
|
url: string,
|
||||||
params?: AxiosRequestParams,
|
params?: AnyObject,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutParams<TData>('head', url, params, config);
|
return this._req<TData>('head', url, params, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
public post<TData = unknown>(
|
public post<TData = unknown>(
|
||||||
url: string,
|
url: string,
|
||||||
data?: AxiosRequestData | AxiosRequestFormData,
|
data?: AnyObject | AxiosRequestFormData,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutData<TData>('post', url, data, config);
|
return this._reqWithData<TData>('post', url, data, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
public put<TData = unknown>(
|
public put<TData = unknown>(
|
||||||
url: string,
|
url: string,
|
||||||
data?: AxiosRequestData | AxiosRequestFormData,
|
data?: AnyObject | AxiosRequestFormData,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutData<TData>('put', url, data, config);
|
return this._reqWithData<TData>('put', url, data, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
public delete<TData = unknown>(
|
public delete<TData = unknown>(
|
||||||
url: string,
|
url: string,
|
||||||
params?: AxiosRequestParams,
|
params?: AnyObject,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutParams<TData>(
|
return this._req<TData>('delete', url, params, config);
|
||||||
'delete',
|
|
||||||
url,
|
|
||||||
params,
|
|
||||||
config,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public trace<TData = unknown>(
|
public trace<TData = unknown>(
|
||||||
url: string,
|
url: string,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutParams<TData>(
|
return this._req<TData>('trace', url, undefined, config);
|
||||||
'trace',
|
|
||||||
url,
|
|
||||||
undefined,
|
|
||||||
config,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public connect<TData = unknown>(
|
public connect<TData = unknown>(
|
||||||
url: string,
|
url: string,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this._requestMethodWithoutParams<TData>(
|
return this._req<TData>('connect', url, undefined, config);
|
||||||
'connect',
|
|
||||||
url,
|
|
||||||
undefined,
|
|
||||||
config,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private _requestMethodWithoutParams<TData = unknown>(
|
private _req<TData = unknown>(
|
||||||
method: AxiosRequestMethod,
|
method: AxiosRequestMethod,
|
||||||
url: string,
|
url: string,
|
||||||
params?: AxiosRequestParams,
|
params?: AnyObject,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this.request<TData>({
|
return this.request<TData>({
|
||||||
|
@ -240,10 +258,10 @@ export default class Axios {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _requestMethodWithoutData<TData = unknown>(
|
private _reqWithData<TData = unknown>(
|
||||||
method: AxiosRequestMethod,
|
method: AxiosRequestMethod,
|
||||||
url: string,
|
url: string,
|
||||||
data?: AxiosRequestData | AxiosRequestFormData,
|
data?: AnyObject | AxiosRequestFormData,
|
||||||
config?: AxiosRequestConfig,
|
config?: AxiosRequestConfig,
|
||||||
): Promise<AxiosResponse<TData>> {
|
): Promise<AxiosResponse<TData>> {
|
||||||
return this.request<TData>({
|
return this.request<TData>({
|
||||||
|
|
|
@ -1,22 +1,17 @@
|
||||||
import { isArray, isUndefined } from '../helpers/is';
|
import { isArray, isUndefined } from '../helpers/is';
|
||||||
import {
|
import { AxiosRequestFormData } from './Axios';
|
||||||
AxiosRequestData,
|
|
||||||
AxiosRequestFormData,
|
|
||||||
AxiosResponseHeaders,
|
|
||||||
} from './Axios';
|
|
||||||
|
|
||||||
export interface AxiosTransformer {
|
export interface AxiosTransformer {
|
||||||
(
|
(data?: AnyObject | AxiosRequestFormData, headers?: AnyObject):
|
||||||
data?: AxiosRequestData | AxiosRequestFormData,
|
| AnyObject
|
||||||
headers?: AxiosResponseHeaders,
|
| AxiosRequestFormData;
|
||||||
): AxiosRequestData | AxiosRequestFormData;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function transformData(
|
export function transformData(
|
||||||
data?: AxiosRequestData | AxiosRequestFormData,
|
data?: AnyObject | AxiosRequestFormData,
|
||||||
headers?: AxiosResponseHeaders,
|
headers?: AnyObject,
|
||||||
transforms?: AxiosTransformer | AxiosTransformer[],
|
transforms?: AxiosTransformer | AxiosTransformer[],
|
||||||
): AxiosRequestData | AxiosRequestFormData | undefined {
|
): AnyObject | AxiosRequestFormData | undefined {
|
||||||
if (isUndefined(transforms)) {
|
if (isUndefined(transforms)) {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,10 +26,6 @@ const defaults: AxiosRequestConfig = {
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
responseType: 'text',
|
responseType: 'text',
|
||||||
enableHttp2: false,
|
|
||||||
enableQuic: false,
|
|
||||||
enableCache: false,
|
|
||||||
sslVerify: true,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default defaults;
|
export default defaults;
|
||||||
|
|
|
@ -8,6 +8,8 @@ export type {
|
||||||
} from './core/Axios';
|
} from './core/Axios';
|
||||||
export type {
|
export type {
|
||||||
AxiosAdapterRequestConfig,
|
AxiosAdapterRequestConfig,
|
||||||
|
AxiosAdapterResponse,
|
||||||
|
AxiosAdapterResponseError,
|
||||||
AxiosAdapter,
|
AxiosAdapter,
|
||||||
AxiosPlatform,
|
AxiosPlatform,
|
||||||
} from './adapter';
|
} from './adapter';
|
||||||
|
|
Loading…
Reference in New Issue