提交 d7820471 编写于 作者: M Martti Laine

Clean up PR

上级 5bfd2ea9
......@@ -32,7 +32,7 @@ axios.Axios = Axios;
// Factory for creating new instances
axios.create = function create(instanceConfig) {
return createInstance(utils.mergeConfig(axios.defaults, instanceConfig || {}));
return createInstance(utils.mergeConfig(axios.defaults, instanceConfig));
};
// Expose Cancel & CancelToken
......
......@@ -23,21 +23,17 @@ function Axios(instanceConfig) {
* @param {Object} config The config specific for this request (merged with this.defaults)
*/
Axios.prototype.request = function request(config) {
config = config || {};
/*eslint no-param-reassign:0*/
// Allow for axios('example/url'[, config]) a la fetch API
if (typeof config === 'string') {
config = arguments[1] || {};
config.url = arguments[0];
}
if (!config.method) {
config.method = 'get';
} else {
config = config || {};
}
config = utils.mergeConfig(this.defaults, config);
config.method = config.method.toLowerCase();
config.method = config.method ? config.method.toLowerCase() : 'get';
// Hook up interceptors middleware
var chain = [dispatchRequest, undefined];
......
......@@ -279,47 +279,39 @@ function extend(a, b, thisArg) {
return a;
}
/**
* Config-specific merge-function which creates a new config-object
* based on given defaults and instance config.
*
* @param {Object} defaults Defaults
* @param {Object} instanceConfig Instance-specific config
* @returns {Object} New object resulting from merging instanceConfig to defaults
*/
function mergeConfig(defaults, instanceConfig) {
instanceConfig = instanceConfig || {};
var config = {};
forEach(['url', 'method', 'params', 'data'], function(prop) {
forEach(['url', 'method', 'params', 'data'], function valueFromInstanceConfig(prop) {
config[prop] = instanceConfig[prop];
});
forEach(['headers', 'auth', 'proxy'], function(prop) {
forEach(['headers', 'auth', 'proxy'], function mergeInstanceConfigWithDefaults(prop) {
if (!isUndefined(instanceConfig[prop])) {
if (!isObject(instanceConfig[prop])) {
config[prop] = instanceConfig[prop];
if (isObject(instanceConfig[prop])) {
config[prop] = merge(defaults[prop], instanceConfig[prop]);
} else {
config[prop] = merge(
defaults[prop],
instanceConfig[prop]
);
config[prop] = instanceConfig[prop];
}
} else if (!isUndefined(defaults[prop])) {
config[prop] = JSON.parse(JSON.stringify(defaults[prop]));
}
});
var remainingProperties = [
'baseURL',
'transformRequest',
'transformResponse',
'paramsSerializer',
'timeout',
'withCredentials',
'adapter',
'responseType',
'xsrfCookieName',
'xsrfHeaderName',
'onUploadProgress',
'onDownloadProgress',
'maxContentLength',
'validateStatus',
'maxRedirects',
'httpAgent',
'httpsAgent',
'cancelToken'
];
forEach(remainingProperties, function(prop) {
config[prop] = !isUndefined(instanceConfig[prop]) ? instanceConfig[prop] : defaults[prop];
forEach([
'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',
'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',
'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength',
'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken'
], function defaultToInstanceConfig(prop) {
config[prop] = isUndefined(instanceConfig[prop]) ? defaults[prop] : instanceConfig[prop];
});
return config;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册