UNPKG

1.5 kBJavaScriptView Raw
1'use strict';
2
3var utils = require('./utils');
4var bind = require('./helpers/bind');
5var Axios = require('./core/Axios');
6var mergeConfig = require('./core/mergeConfig');
7var defaults = require('./defaults');
8
9/**
10 * Create an instance of Axios
11 *
12 * @param {Object} defaultConfig The default config for the instance
13 * @return {Axios} A new instance of Axios
14 */
15function createInstance(defaultConfig) {
16 var context = new Axios(defaultConfig);
17 var instance = bind(Axios.prototype.request, context);
18
19 // Copy axios.prototype to instance
20 utils.extend(instance, Axios.prototype, context);
21
22 // Copy context to instance
23 utils.extend(instance, context);
24
25 return instance;
26}
27
28// Create the default instance to be exported
29var axios = createInstance(defaults);
30
31// Expose Axios class to allow class inheritance
32axios.Axios = Axios;
33
34// Factory for creating new instances
35axios.create = function create(instanceConfig) {
36 return createInstance(mergeConfig(axios.defaults, instanceConfig));
37};
38
39// Expose Cancel & CancelToken
40axios.Cancel = require('./cancel/Cancel');
41axios.CancelToken = require('./cancel/CancelToken');
42axios.isCancel = require('./cancel/isCancel');
43
44// Expose all/spread
45axios.all = function all(promises) {
46 return Promise.all(promises);
47};
48axios.spread = require('./helpers/spread');
49
50// Expose isAxiosError
51axios.isAxiosError = require('./helpers/isAxiosError');
52
53module.exports = axios;
54
55// Allow use of default import syntax in TypeScript
56module.exports.default = axios;