From b1f5da385bb395dd10b46dfbdeca1736b01ee728 Mon Sep 17 00:00:00 2001 From: "954270063@qq.com" <954270063@qq.com> Date: Sun, 19 Apr 2020 03:05:41 +0800 Subject: [PATCH] =?UTF-8?q?:construction:=20=E5=86=99=E6=B5=8B=E8=AF=95=20?= =?UTF-8?q?=E4=BF=AEBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 50 +++++++++++++++++----------------- package.json | 2 +- src/adapter/adaptive.ts | 15 +++++----- src/axios.ts | 4 +-- src/core/InterceptorManager.ts | 14 +++++----- src/core/request.ts | 4 +-- src/helper/flattenHeaders.ts | 4 +-- src/helper/utils.ts | 5 +++- src/index.ts | 2 +- src/types.ts | 2 +- test/index.test.ts | 4 +-- 11 files changed, 54 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 1934331..a9f0692 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/package.json b/package.json index 86a338c..292be45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "axios-miniprogram", - "version": "1.0.2", + "version": "1.0.5", "description": "基于 Promise 的 HTTP 请求库,适用于各大小程序平台。", "main": "package/index.js", "miniprogram": "package", diff --git a/src/adapter/adaptive.ts b/src/adapter/adaptive.ts index 8167ab7..35ceaf4 100644 --- a/src/adapter/adaptive.ts +++ b/src/adapter/adaptive.ts @@ -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; /** * 设置当前平台适配器 diff --git a/src/axios.ts b/src/axios.ts index 03e93c7..b43b738 100644 --- a/src/axios.ts +++ b/src/axios.ts @@ -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; } diff --git a/src/core/InterceptorManager.ts b/src/core/InterceptorManager.ts index 9aa9a64..12e9374 100644 --- a/src/core/InterceptorManager.ts +++ b/src/core/InterceptorManager.ts @@ -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 implements InterceptorManager>; + private interceptors: Record>; constructor() { this.id = 0; - this.interceptors = new Map(); + this.interceptors = {}; } /** @@ -38,10 +38,10 @@ export default class InterceptorManagerStatic implements InterceptorManager, 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 implements InterceptorManager implements InterceptorManager, reverse?: 'reverse'): void { - let interceptors: Interceptor[] = [...this.interceptors.values()]; + let interceptors: Interceptor[] = [...Object.values(this.interceptors)]; if (reverse === 'reverse') { interceptors = interceptors.reverse(); diff --git a/src/core/request.ts b/src/core/request.ts index 240e884..12abd0a 100644 --- a/src/core/request.ts +++ b/src/core/request.ts @@ -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 { + ['common', 'options', 'delete', 'get', 'head', 'post', 'put', 'trace', 'connect'].forEach((key: string) => { delete headers[key]; }); diff --git a/src/helper/utils.ts b/src/helper/utils.ts index 810d385..fd3a3bf 100644 --- a/src/helper/utils.ts +++ b/src/helper/utils.ts @@ -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[]): Record { } objs.forEach((obj: Record): void => { + if (obj === undefined) { + return; + } Object.entries(obj).forEach(([key, value]) => assignValue(key, value)); }); diff --git a/src/index.ts b/src/index.ts index 5bbed94..1523bac 100644 --- a/src/index.ts +++ b/src/index.ts @@ -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'; diff --git a/src/types.ts b/src/types.ts index 1ef1f0a..dfd0a66 100644 --- a/src/types.ts +++ b/src/types.ts @@ -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 */ /** * 任意值对象 diff --git a/test/index.test.ts b/test/index.test.ts index 0cb33eb..a931e58 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -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); }); });