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.
89 lines
2.5 KiB
89 lines
2.5 KiB
'use strict'; |
|
|
|
import utils from './utils.js'; |
|
import bind from './helpers/bind.js'; |
|
import Axios from './core/Axios.js'; |
|
import mergeConfig from './core/mergeConfig.js'; |
|
import defaults from './defaults/index.js'; |
|
import formDataToJSON from './helpers/formDataToJSON.js'; |
|
import CanceledError from './cancel/CanceledError.js'; |
|
import CancelToken from './cancel/CancelToken.js'; |
|
import isCancel from './cancel/isCancel.js'; |
|
import {VERSION} from './env/data.js'; |
|
import toFormData from './helpers/toFormData.js'; |
|
import AxiosError from './core/AxiosError.js'; |
|
import spread from './helpers/spread.js'; |
|
import isAxiosError from './helpers/isAxiosError.js'; |
|
import AxiosHeaders from "./core/AxiosHeaders.js"; |
|
import adapters from './adapters/adapters.js'; |
|
import HttpStatusCode from './helpers/HttpStatusCode.js'; |
|
|
|
/** |
|
* Create an instance of Axios |
|
* |
|
* @param {Object} defaultConfig The default config for the instance |
|
* |
|
* @returns {Axios} A new instance of Axios |
|
*/ |
|
function createInstance(defaultConfig) { |
|
const context = new Axios(defaultConfig); |
|
const instance = bind(Axios.prototype.request, context); |
|
|
|
// Copy axios.prototype to instance |
|
utils.extend(instance, Axios.prototype, context, {allOwnKeys: true}); |
|
|
|
// Copy context to instance |
|
utils.extend(instance, context, null, {allOwnKeys: true}); |
|
|
|
// Factory for creating new instances |
|
instance.create = function create(instanceConfig) { |
|
return createInstance(mergeConfig(defaultConfig, instanceConfig)); |
|
}; |
|
|
|
return instance; |
|
} |
|
|
|
// Create the default instance to be exported |
|
const axios = createInstance(defaults); |
|
|
|
// Expose Axios class to allow class inheritance |
|
axios.Axios = Axios; |
|
|
|
// Expose Cancel & CancelToken |
|
axios.CanceledError = CanceledError; |
|
axios.CancelToken = CancelToken; |
|
axios.isCancel = isCancel; |
|
axios.VERSION = VERSION; |
|
axios.toFormData = toFormData; |
|
|
|
// Expose AxiosError class |
|
axios.AxiosError = AxiosError; |
|
|
|
// alias for CanceledError for backward compatibility |
|
axios.Cancel = axios.CanceledError; |
|
|
|
// Expose all/spread |
|
axios.all = function all(promises) { |
|
return Promise.all(promises); |
|
}; |
|
|
|
axios.spread = spread; |
|
|
|
// Expose isAxiosError |
|
axios.isAxiosError = isAxiosError; |
|
|
|
// Expose mergeConfig |
|
axios.mergeConfig = mergeConfig; |
|
|
|
axios.AxiosHeaders = AxiosHeaders; |
|
|
|
axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); |
|
|
|
axios.getAdapter = adapters.getAdapter; |
|
|
|
axios.HttpStatusCode = HttpStatusCode; |
|
|
|
axios.default = axios; |
|
|
|
// this module should only have a default export |
|
export default axios
|
|
|