You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.5 KiB
56 lines
1.5 KiB
'use strict'; |
|
|
|
var utils = require('./utils'); |
|
var bind = require('./helpers/bind'); |
|
var Axios = require('./core/Axios'); |
|
var mergeConfig = require('./core/mergeConfig'); |
|
var defaults = require('./defaults'); |
|
|
|
/** |
|
* Create an instance of Axios |
|
* |
|
* @param {Object} defaultConfig The default config for the instance |
|
* @return {Axios} A new instance of Axios |
|
*/ |
|
function createInstance(defaultConfig) { |
|
var context = new Axios(defaultConfig); |
|
var instance = bind(Axios.prototype.request, context); |
|
|
|
// Copy axios.prototype to instance |
|
utils.extend(instance, Axios.prototype, context); |
|
|
|
// Copy context to instance |
|
utils.extend(instance, context); |
|
|
|
return instance; |
|
} |
|
|
|
// Create the default instance to be exported |
|
var axios = createInstance(defaults); |
|
|
|
// Expose Axios class to allow class inheritance |
|
axios.Axios = Axios; |
|
|
|
// Factory for creating new instances |
|
axios.create = function create(instanceConfig) { |
|
return createInstance(mergeConfig(axios.defaults, instanceConfig)); |
|
}; |
|
|
|
// Expose Cancel & CancelToken |
|
axios.Cancel = require('./cancel/Cancel'); |
|
axios.CancelToken = require('./cancel/CancelToken'); |
|
axios.isCancel = require('./cancel/isCancel'); |
|
|
|
// Expose all/spread |
|
axios.all = function all(promises) { |
|
return Promise.all(promises); |
|
}; |
|
axios.spread = require('./helpers/spread'); |
|
|
|
// Expose isAxiosError |
|
axios.isAxiosError = require('./helpers/isAxiosError'); |
|
|
|
module.exports = axios; |
|
|
|
// Allow use of default import syntax in TypeScript |
|
module.exports.default = axios;
|
|
|