mirror of
https://github.com/tenrok/axios.git
synced 2026-06-05 16:42:32 +03:00
Fixing #385 - Keep defaults local to instance
This commit is contained in:
+47
-1
@@ -279,6 +279,51 @@ function extend(a, b, thisArg) {
|
||||
return a;
|
||||
}
|
||||
|
||||
function mergeConfig(defaults, instanceConfig) {
|
||||
var config = {};
|
||||
forEach(['url', 'method', 'params', 'data'], function(prop) {
|
||||
config[prop] = instanceConfig[prop];
|
||||
});
|
||||
forEach(['headers', 'auth', 'proxy'], function(prop) {
|
||||
if (!isUndefined(instanceConfig[prop])) {
|
||||
if (!isObject(instanceConfig[prop])) {
|
||||
config[prop] = instanceConfig[prop];
|
||||
} else {
|
||||
config[prop] = merge(
|
||||
defaults[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];
|
||||
});
|
||||
return config;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
isArray: isArray,
|
||||
isArrayBuffer: isArrayBuffer,
|
||||
@@ -299,5 +344,6 @@ module.exports = {
|
||||
forEach: forEach,
|
||||
merge: merge,
|
||||
extend: extend,
|
||||
trim: trim
|
||||
trim: trim,
|
||||
mergeConfig: mergeConfig
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user