-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaxios.ts
36 lines (29 loc) · 999 Bytes
/
axios.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
* @Author: [email protected]
* @Date: 2020-02-05 14:38:17
* @LastEditors: [email protected]
* @LastEditTime: 2020-02-25 23:29:55
* @FilePath: /ts-axios/src/axios.ts
* @Description: Do something ...
*/
import { AxiosRequestConfig, AxiosStatic } from './types'
import Axios from './core/axios'
import { extend } from './helpers/utils'
import defaults from './default'
import mergeConfig from './core/mergeConfig'
import CancelToken from './cancel/cancelToken'
import Cancel, { isCancel } from './cancel/cancel'
function createInstance(config: AxiosRequestConfig): AxiosStatic {
const context = new Axios(config)
const instance = Axios.prototype.request.bind(context)
extend(instance, context)
return instance as AxiosStatic
}
const axios = createInstance(defaults)
axios.create = function create(config) {
return createInstance(mergeConfig(defaults, config))
}
axios.CancelToken = CancelToken
axios.Cancel = Cancel
axios.isCancel = isCancel
export default axios