升级依赖

pull/4/head
early-autumn 2020-07-22 14:20:00 +08:00
parent 10be37bbbf
commit ec1587111a
52 changed files with 107 additions and 303 deletions

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,7 @@
<component name="ProjectDictionaryState">
<dictionary name="fluff">
<words>
<w>axios</w>
</words>
</dictionary>
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GoogleJavaFormatSettings">
<option name="enabled" value="false" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

9
.idea/misc.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" project-jdk-name="14" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/axios-miniprogram.iml" filepath="$PROJECT_DIR$/.idea/axios-miniprogram.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -1,7 +1,7 @@
# axios-miniprogram
[![build status](https://travis-ci.com/early-autumn/axios-miniprogram.svg?branch=master)](https://travis-ci.org/early-autumn/axios-miniprogram)
[![Coverage Status](https://coveralls.io/repos/github/early-autumn/axios-miniprogram/badge.svg?branch=master)](https://coveralls.io/github/early-autumn/axios-miniprogram?branch=master)
[![build status](https://travis-ci.com/zjx0905/axios-miniprogram.svg?branch=master)](https://travis-ci.org/zjx0905/axios-miniprogram)
[![Coverage Status](https://coveralls.io/repos/github/zjx0905/axios-miniprogram/badge.svg?branch=master)](https://coveralls.io/github/zjx0905/axios-miniprogram?branch=master)
[![npm version](https://badge.fury.io/js/axios-miniprogram.svg)](https://badge.fury.io/js/axios-miniprogram)
[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)
@ -486,18 +486,18 @@ instance.get('/test');
`axios.Axios`是一个类,其实`axios`就是`axios.Axios`类的实例改造而来的,`axios.create(defaults)`创建的也是`axios.Axios`的实例。
直接实例化`axios.Axios`可以得到一个`纯净的实例`,不能当函数调用,传入的自定义配置就是`纯净的实例`的默认配置,而不会像`axios.create(defaults)`一样去合并`axios`中的默认配置。
直接实例化`axios.Axios`可以得到一个`原始实例`,不能当函数调用,传入的自定义配置就是`原始实例`的默认配置,而不会像`axios.create(defaults)`一样去合并`axios`中的默认配置。
```typescript
axios.defaults.baseURL = 'https://www.xxx.com';
const instance = new axios.Axios({
params: { value: '零污染' }
params: { value: 123 }
});
// 最终请求的 URL 是这样的 => /test?value=零污染
// 最终请求的 URL 是这样的 => /test?value=123
// /test 来自传入的 '/test'
// value=零污染 来自 instance.defaults.params
// value=123 来自 instance.defaults.params
instance.get('/test');
```
@ -512,7 +512,3 @@ axios('/test').then().catch();
// 请求失败
// axios => axios.interceptors.request => config.transformRequest => config.paramsSerializer => config.adapter => config.validateStatus => config.transformResponse => config.errorHandler => axios.interceptors.response => catch
```
## Typescript
![avatar](http://chuantu.xyz/t6/730/1587543726x1700338641.jpg)

View File

@ -1,6 +1,6 @@
{
"name": "axios-miniprogram",
"version": "1.1.2",
"version": "1.1.3",
"description": "基于 Promise 的 HTTP 请求库,适用于各大小程序平台。",
"main": "package/index.js",
"miniprogram": "package",
@ -33,7 +33,7 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/early-autumn/axios-miniprogram.git"
"url": "git+https://github.com/zjx0905/axios-miniprogram.git"
},
"keywords": [
"axios",
@ -41,34 +41,34 @@
"request",
"promise"
],
"author": "early-autumn",
"author": "zjx0905",
"license": "MIT",
"bugs": {
"url": "https://github.com/early-autumn/axios-miniprogram/issues"
"url": "https://github.com/zjx0905/axios-miniprogram/issues"
},
"homepage": "https://github.com/early-autumn/axios-miniprogram#readme",
"homepage": "https://github.com/zjx0905/axios-miniprogram#readme",
"devDependencies": {
"@babel/core": "^7.8.7",
"@babel/plugin-proposal-optional-chaining": "^7.8.3",
"@babel/plugin-transform-modules-commonjs": "^7.9.0",
"@babel/plugin-transform-runtime": "^7.8.3",
"@babel/preset-env": "^7.8.7",
"@babel/preset-typescript": "^7.8.3",
"@babel/runtime": "^7.8.7",
"@types/jest": "^25.1.3",
"@typescript-eslint/eslint-plugin": "^2.22.0",
"@typescript-eslint/parser": "^2.22.0",
"coveralls": "^3.0.9",
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.10.0",
"eslint-plugin-prettier": "^3.1.2",
"husky": "^4.2.3",
"jest": "^25.1.0",
"prettier": "^1.19.1",
"@babel/core": "^7.10.5",
"@babel/plugin-proposal-optional-chaining": "^7.10.4",
"@babel/plugin-transform-modules-commonjs": "^7.10.4",
"@babel/plugin-transform-runtime": "^7.10.5",
"@babel/preset-env": "^7.10.4",
"@babel/preset-typescript": "^7.10.4",
"@babel/runtime": "^7.10.5",
"@types/jest": "^26.0.5",
"@typescript-eslint/eslint-plugin": "^3.7.0",
"@typescript-eslint/parser": "^3.7.0",
"coveralls": "^3.1.0",
"eslint": "^7.5.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.4",
"husky": "^4.2.5",
"jest": "^26.1.0",
"prettier": "^2.0.5",
"rollup-plugin-babel": "^4.4.0",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-typescript2": "^0.26.0",
"ts-jest": "^25.2.1",
"typescript": "^3.8.3"
"rollup-plugin-typescript2": "^0.27.1",
"ts-jest": "^26.1.3",
"typescript": "^3.9.7"
}
}
}

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-17 12:18:25
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-25 19:10:04
*/
import { Adapter, Platform } from './types';
// uniapp
@ -23,7 +17,7 @@ declare let qq: Platform;
*
*/
export default function adaptive(): Adapter | undefined {
const stack = [
const stack: (() => Adapter)[] = [
() => uni.request,
() => wx.request,
() => my.request,
@ -36,7 +30,7 @@ export default function adaptive(): Adapter | undefined {
while (stack.length !== 0 && adapter === undefined) {
try {
adapter = (stack.shift() as Function)();
adapter = (stack.shift() as () => Adapter)();
} catch (err) {}
}

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-15 12:45:18
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-24 09:26:03
*/
import { AxiosRequestConfig, Data, AxiosResponse, AxiosBaseInstance, AxiosInstance } from './types';
import Axios from './core/Axios';
import mergeConfig from './core/mergeConfig';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-13 21:14:53
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-25 09:26:10
*/
import { Cancel } from '../types';
export default class CancelClass implements Cancel {
@ -12,7 +6,7 @@ export default class CancelClass implements Cancel {
*/
public constructor(public message?: string) {}
public toString() {
public toString(): string {
const message = this.message ? `: ${this.message}` : '';
return `Cancel${message}`;

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-13 20:00:08
* @LastEditors: early-autumn
* @LastEditTime: 2020-05-05 08:52:21
*/
import { CancelToken, CancelAction, CancelExecutor, CancelTokenSource } from '../types';
import Cancel from './Cancel';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-14 09:23:25
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-23 22:44:43
*/
import Cancel from './Cancel';
/**
@ -11,6 +5,6 @@ import Cancel from './Cancel';
*
* @param value
*/
export default function isCancel(value: any): value is Cancel {
export default function isCancel(value: unknown): value is Cancel {
return value instanceof Cancel;
}

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-13 18:00:27
* @LastEditors: early-autumn
* @LastEditTime: 2020-05-05 08:58:47
*/
import { Method, Params, Data, Interceptors, AxiosRequestConfig, AxiosResponse, Axios } from '../types';
import buildURL from '../helpers/buildURL';
import mergeConfig from './mergeConfig';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-15 17:50:50
* @LastEditors: early-autumn
* @LastEditTime: 2020-05-05 09:01:50
*/
import {
InterceptorResolved,
InterceptorRejected,
@ -26,7 +20,7 @@ export default class InterceptorManagerClass<T> implements InterceptorManager<T>
*/
private _interceptors: Record<number, Interceptor<T>> = {};
public use(resolved: InterceptorResolved<T>, rejected?: InterceptorRejected) {
public use(resolved: InterceptorResolved<T>, rejected?: InterceptorRejected): number {
this._interceptors[++this._id] = {
resolved,
rejected,

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-14 22:23:39
* @LastEditors: early-autumn
* @LastEditTime: 2020-05-02 17:41:55
*/
import { AxiosRequestConfig, RequestConfig, AxiosResponse, AxiosError } from '../types';
/**

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-13 18:01:16
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-25 09:24:20
*/
import { AxiosRequestConfig, AxiosResponse } from '../types';
import isCancel from '../cancel/isCancel';
import flattenHeaders from './flattenHeaders';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-18 12:00:01
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 13:44:26
*/
import { Headers, AxiosRequestConfig } from '../types';
import { omit } from '../helpers/utils';
import { methodToLowercase } from './transformMethod';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-15 22:48:25
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-23 23:55:19
*/
import { AnyObject, AxiosRequestConfig } from '../types';
import { isPlainObject, deepMerge } from '../helpers/utils';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-16 00:48:45
* @LastEditors: early-autumn
* @LastEditTime: 2020-05-02 14:33:49
*/
import { AxiosRequestConfig, AxiosResponse, Response } from '../types';
import transformRequest from './transformRequest';
import transformResponse from './transformResponse';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-16 22:37:44
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-25 09:30:42
*/
import { Data, Headers, TransformData } from '../types';
/**
@ -13,7 +7,11 @@ import { Data, Headers, TransformData } from '../types';
* @param headers /
* @param transforms /
*/
export default function transformData(data: Data, headers: Headers, transforms?: TransformData | TransformData[]) {
export default function transformData(
data: Data,
headers: Headers,
transforms?: TransformData | TransformData[]
): Data {
if (transforms === undefined) {
return data;
}

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 13:31:45
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 13:45:11
*/
import { AliasMethod, AdapterMethod, Method } from '../types';
/**

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-17 15:05:43
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-25 09:27:30
*/
import { AxiosRequestConfig, RequestConfig } from '../types';
import { pick } from '../helpers/utils';
import isAbsoluteURL from '../helpers/isAbsoluteURL';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-17 14:09:16
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-25 09:29:50
*/
import { AxiosRequestConfig, AxiosResponse, Response } from '../types';
import { pick } from '../helpers/utils';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-15 22:09:38
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-23 09:11:41
*/
import { AxiosRequestConfig } from './types';
import adaptive from './adaptive';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-13 21:45:45
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-22 15:51:28
*/
import { AnyObject, Params } from '../types';
import { encode, isPlainObject, isDate } from './utils';
@ -73,7 +67,7 @@ function paramsSerialization(params: AnyObject): string {
*
* @param url
* @param params
* @param paramsSerialized
* @param paramsSerializer
*/
export default function buildURL(url: string, params: Params = {}, paramsSerializer = paramsSerialization): string {
return generateURL(url, paramsSerializer(params));

View File

@ -1,10 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 09:16:47
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 09:19:23
*/
/**
* baseURL url URL
*

View File

@ -1,10 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 09:17:40
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 09:19:11
*/
/**
* URL
*

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-13 21:55:40
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-23 22:38:30
*/
import { AnyObject } from '../types';
const _toString = Object.prototype.toString;
@ -29,7 +23,7 @@ export function encode(str: string): string {
*
* @param date
*/
export function isDate(date: any): date is Date {
export function isDate(date: unknown): date is Date {
return _toString.call(date) === '[object Date]';
}
@ -38,7 +32,7 @@ export function isDate(date: any): date is Date {
*
* @param obj
*/
export function isPlainObject(obj: any): obj is object {
export function isPlainObject(obj: unknown): obj is Record<string, unknown> {
return _toString.call(obj) === '[object Object]';
}

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-14 23:22:52
* @LastEditors: early-autumn
* @LastEditTime: 2020-05-02 22:44:34
*/
import axios from './axios';
export * from './types';

View File

@ -1,10 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-13 15:23:53
* @LastEditors: early-autumn
* @LastEditTime: 2020-05-05 09:02:12
*/
/**
*
*/

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 17:22:26
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 22:20:47
*/
import adaptive from '../src/adaptive';
declare global {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 13:58:00
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 09:33:06
*/
import axios from '../src/axios';
describe('测试 src/axios.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 15:09:33
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 15:17:27
*/
import Cancel from '../../src/cancel/Cancel';
describe('测试 src/cancel/Cancel.ts', () => {

View File

@ -1,14 +1,8 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 15:17:50
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 09:01:02
*/
import CancelToken from '../../src/cancel/CancelToken';
describe('测试 src/cancel/CancelToken.ts', () => {
it('实例化', () => {
const token = new CancelToken(function(cancel) {
const token = new CancelToken(function (cancel) {
cancel('取消');
});

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 15:12:17
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 08:57:38
*/
import isCancel from '../../src/cancel/isCancel';
import Cancel from '../../src/cancel/Cancel';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 20:47:09
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-22 16:04:16
*/
import Axios from '../../src/core/Axios';
const instance = new Axios();
@ -29,12 +23,12 @@ describe('测试 src/core/Axios.ts', () => {
return 'task';
};
instance.interceptors.request.use(function(config) {
instance.interceptors.request.use(function (config) {
config.data = 'interceptors_request';
return config;
});
instance.interceptors.response.use(function(response) {
instance.interceptors.response.use(function (response) {
response.data = 'interceptors_response';
return response;
});

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 15:40:44
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-23 09:29:17
*/
import InterceptorManager from '../../src/core/InterceptorManager';
describe('测试 src/core/InterceptorManager.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 22:42:46
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 19:38:53
*/
import { CancelAction } from '../../src/types';
import dispatchRequest from '../../src/core/dispatchRequest';
import CancelToken from '../../src/cancel/CancelToken';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 20:39:42
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 23:27:34
*/
import flattenHeaders from '../../src/core/flattenHeaders';
describe('测试 src/core/flattenHeaders.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 19:16:32
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 11:48:12
*/
import { AxiosRequestConfig } from '../../src/types';
import mergeConfig from '../../src/core/mergeConfig';
import defaults from '../../src/defaults';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 22:51:26
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 09:37:30
*/
import request from '../../src/core/request';
import CancelToken from '../../src/cancel/CancelToken';
import isCancel from '../../src/cancel/isCancel';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 20:31:29
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 20:38:49
*/
import { Data } from '../../src/types';
import transformData from '../../src/core/transformData';

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 16:14:52
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 16:17:39
*/
import { methodToLowercase, methodToUppercase } from '../../src/core/transformMethod';
describe('测试 src/core/transformMethod.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 21:08:23
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-22 15:51:48
*/
import transformRequest from '../../src/core/transformRequest';
describe('测试 src/core/transformRequest.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 21:25:08
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 21:34:20
*/
import transformResponse from '../../src/core/transformResponse';
describe('测试 src/core/transformResponse.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-19 14:34:13
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 09:58:22
*/
import buildURL from '../../src/helpers/buildURL';
describe('测试 src/helpers/buildURL.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 09:42:17
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 09:58:41
*/
import combineURL from '../../src/helpers/combineURL';
describe('测试 src/helpers/combineURL.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 09:42:17
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 10:27:07
*/
import isAbsoluteURL from '../../src/helpers/isAbsoluteURL';
describe('测试 src/helpers/isAbsoluteURL.ts', () => {

View File

@ -1,9 +1,3 @@
/*
* @Author: early-autumn
* @Date: 2020-04-20 10:02:56
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 10:23:45
*/
import { encode, isDate, isPlainObject, deepMerge, pick, omit } from '../../src/helpers/utils';
describe('测试 src/helpers/utils.ts', () => {