🚧 写测试 修BUG

pull/1/head
954270063@qq.com 2020-04-19 03:05:41 +08:00
parent 370256a0f8
commit b1f5da385b
11 changed files with 54 additions and 52 deletions

View File

@ -38,24 +38,24 @@ npm i axios-miniprogram
|参数|类型|默认值|说明|全平台兼容|
|:-|:-|:-|:-|:-|
|adapter|Function|[查看](https://github.com/early-autumn/axios-miniprogram/blob/master/src/helper/defaults.ts#L11)|自定义适配器|是|
|baseURL|String||基础地址|是|
|url|String||请求地址|是|
|method|String|get|请求方法||
|params|Object||请求参数|是|
|data|String/Object/ArrayBuffer||请求数据|是|
|baseURL|String| |基础地址|是|
|url|String| |请求地址|是|
|method|String|get|请求方法| |
|params|Object| |请求参数|是|
|data|String/Object/ArrayBuffer| |请求数据|是|
|headers|Object|[查看](https://github.com/early-autumn/axios-miniprogram/blob/master/src/helper/defaults.ts#L13)|请求头|是|
|validateStatus|Function|[查看](https://github.com/early-autumn/axios-miniprogram/blob/master/src/helper/defaults.ts#L30)|自定义合法状态码|是|
|paramsSerializer|Function||自定义参数序列化|是|
|transformRequest|Function/Array<.Function>||自定义转换请求数据|是|
|transformResponse|Function/Array<.Function>||自定义转换响应数据|是|
|cancelToken|Object||取消令牌|是|
|timeout|Number|0|超时时间||
|paramsSerializer|Function| |自定义参数序列化|是|
|transformRequest|Function/Array<.Function>| |自定义转换请求数据|是|
|transformResponse|Function/Array<.Function>| |自定义转换响应数据|是|
|cancelToken|Object| |取消令牌|是|
|timeout|Number|0|超时时间| |
|dataType|String|json|响应数据格式|是|
|responseType|String|text|响应数据类型|是|
|enableHttp2|Boolean|false|开启 http2||
|enableQuic|Boolean|false|开启 quic||
|enableCache|Boolean|false|开启 cache||
|sslVerify|Boolean|true|验证 ssl 证书||
|enableHttp2|Boolean|false|开启 http2| |
|enableQuic|Boolean|false|开启 quic| |
|enableCache|Boolean|false|开启 cache| |
|sslVerify|Boolean|true|验证 ssl 证书| |
##### `config.method`的合法值
@ -63,14 +63,14 @@ npm i axios-miniprogram
|值|说明|全平台兼容|
|:-|:-|:-|
|OPTIONS|
|GET||是|
|HEAD|
|POST||是|
|PUT||是|
|DELETE||是|
|TRACE|
|CONNECT|
|OPTIONS| | |
|GET| |是|
|HEAD| | |
|POST| |是|
|PUT| |是|
|DELETE| |是|
|TRACE| | |
|CONNECT| | |
##### `config.dataType`的合法值
@ -84,7 +84,7 @@ npm i axios-miniprogram
|值|说明|全平台兼容|
|:-|:-|:-|
|text|响应的数据为文本|是|
|arraybuffer|响应的数据为 ArrayBuffer|是|
|arraybuffer|响应的数据为 ArrayBuffer|是|
##### `config.validateStatus`自定义合法状态码
@ -227,8 +227,8 @@ instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlenco
|response|Object|通用响应体|是|
|request|Object|通用请求配置|是|
|config|Object|Axios 请求配置|是|
|cookies|Array<.String>|开发者服务器返回的 cookies格式为字符串数组|
|profile|Object|网络请求过程中一些关键时间点的耗时信息|
|cookies|Array<.String>|开发者服务器返回的 cookies格式为字符串数组| |
|profile|Object|网络请求过程中一些关键时间点的耗时信息| |
## API

View File

@ -1,6 +1,6 @@
{
"name": "axios-miniprogram",
"version": "1.0.2",
"version": "1.0.5",
"description": "基于 Promise 的 HTTP 请求库,适用于各大小程序平台。",
"main": "package/index.js",
"miniprogram": "package",

View File

@ -2,17 +2,16 @@
* @Author: early-autumn
* @Date: 2020-04-17 12:18:25
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-18 20:34:02
* @LastEditTime: 2020-04-19 01:15:42
*/
import { Adapter, Platform } from '../types';
/* eslint-disable no-var */
var wx: Platform;
var swan: Platform;
var my: Platform;
var tt: Platform;
var qq: Platform;
var uni: Platform;
declare let wx: Platform;
declare let my: Platform;
declare let swan: Platform;
declare let tt: Platform;
declare let qq: Platform;
declare let uni: Platform;
/**
*

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-15 12:45:18
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-18 15:32:21
* @LastEditTime: 2020-04-19 01:40:54
*/
import { AxiosRequestConfig, Data, AxiosResponse, AxiosBaseInstance, AxiosInstance } from './types';
import Axios from './core/Axios';
@ -51,7 +51,7 @@ function createInstance(config: AxiosRequestConfig): AxiosInstance {
}
// Axios 实例的所有属性和方法合并至 axios 函数
Object.assign(axios, instance);
Object.assign(axios, instance, Object.getPrototypeOf(instance));
return axios as AxiosInstance;
}

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-15 17:50:50
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-17 16:11:54
* @LastEditTime: 2020-04-19 02:22:28
*/
import {
InterceptorResolved,
@ -24,11 +24,11 @@ export default class InterceptorManagerStatic<T> implements InterceptorManager<T
/**
*
*/
private interceptors: Map<number, Interceptor<T>>;
private interceptors: Record<string, Interceptor<T>>;
constructor() {
this.id = 0;
this.interceptors = new Map();
this.interceptors = {};
}
/**
@ -38,10 +38,10 @@ export default class InterceptorManagerStatic<T> implements InterceptorManager<T
* @param rejected
*/
public use(resolved: InterceptorResolved<T>, rejected: InterceptorRejected = (err: any) => Promise.reject(err)) {
this.interceptors.set(this.id++, {
this.interceptors[this.id++] = {
resolved,
rejected,
});
};
return this.id;
}
@ -52,7 +52,7 @@ export default class InterceptorManagerStatic<T> implements InterceptorManager<T
* @param id id
*/
public eject(id: number): void {
this.interceptors.delete(id);
delete this.interceptors[id];
}
/**
@ -62,7 +62,7 @@ export default class InterceptorManagerStatic<T> implements InterceptorManager<T
* @param reverse
*/
public forEach(executor: InterceptorExecutor<T>, reverse?: 'reverse'): void {
let interceptors: Interceptor<T>[] = [...this.interceptors.values()];
let interceptors: Interceptor<T>[] = [...Object.values(this.interceptors)];
if (reverse === 'reverse') {
interceptors = interceptors.reverse();

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-16 00:48:45
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-18 20:32:56
* @LastEditTime: 2020-04-19 01:56:59
*/
import { AxiosRequestConfig, AxiosResponse, Response } from '../types';
import createError from '../core/createError';
@ -50,7 +50,7 @@ export default function request(config: AxiosRequestConfig): Promise<AxiosRespon
if (config.validateStatus === undefined || config.validateStatus(response.status)) {
resolve(response);
} else {
catchError(`请求失败,状态码为 ${status}`, response);
catchError(`请求失败,状态码为 ${response.status}`, response);
}
}

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-18 12:00:01
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-18 15:40:23
* @LastEditTime: 2020-04-19 02:32:15
*/
import { AliasMethod, Headers, AxiosRequestConfig } from '../types';
import { merge } from './utils';
@ -18,7 +18,7 @@ export default function flattenHeaders(config: AxiosRequestConfig): Headers {
headers = merge(headers.common ?? {}, headers[method] ?? {}, headers);
['delete', 'get', 'head', 'post', 'put', 'patch', 'common'].forEach((key: string) => {
['common', 'options', 'delete', 'get', 'head', 'post', 'put', 'trace', 'connect'].forEach((key: string) => {
delete headers[key];
});

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-13 21:55:40
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-17 09:29:19
* @LastEditTime: 2020-04-19 01:56:21
*/
const _toString = Object.prototype.toString;
@ -94,6 +94,9 @@ export function deepMerge(...objs: Record<string, any>[]): Record<string, any> {
}
objs.forEach((obj: Record<string, any>): void => {
if (obj === undefined) {
return;
}
Object.entries(obj).forEach(([key, value]) => assignValue(key, value));
});

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-14 23:22:52
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-18 23:47:50
* @LastEditTime: 2020-04-19 02:31:59
*/
import axios from './axios';

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-13 15:23:53
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-18 23:00:43
* @LastEditTime: 2020-04-19 02:06:24
*/
/**
*

View File

@ -2,12 +2,12 @@
* @Author: early-autumn
* @Date: 2020-04-14 23:43:45
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-17 11:44:55
* @LastEditTime: 2020-04-19 03:05:38
*/
import { isDate } from '../src/helper/utils';
describe('', () => {
it('?', () => {
expect(isDate({})).toBeFalsy();
expect(isDate(new Date())).toBe(true);
});
});