2
0
mirror of https://github.com/tenrok/axios.git synced 2026-05-24 14:04:14 +03:00

Moving default adapter to global defaults

This commit is contained in:
Rubén Norte
2016-07-10 18:01:40 +02:00
parent 755a9b3459
commit b2745873a1
2 changed files with 34 additions and 34 deletions
+20 -34
View File
@@ -2,10 +2,10 @@
var utils = require('./../utils');
var transformData = require('./transformData');
var defaults = require('../defaults');
/**
* Dispatch a request to the server using whichever adapter
* is supported by the current environment.
* Dispatch a request to the server using the configured adapter.
*
* @param {object} config The config that is to be used for the request
* @returns {Promise} The Promise to be fulfilled
@@ -35,41 +35,27 @@ module.exports = function dispatchRequest(config) {
}
);
var adapter;
var adapter = config.adapter || defaults.adapter;
if (typeof config.adapter === 'function') {
// For custom adapter support
adapter = config.adapter;
} else if (typeof XMLHttpRequest !== 'undefined') {
// For browsers use XHR adapter
adapter = require('../adapters/xhr');
} else if (typeof process !== 'undefined') {
// For node use HTTP adapter
adapter = require('../adapters/http');
}
return adapter(config).then(function onAdapterResolution(response) {
// Transform response data
response.data = transformData(
response.data,
response.headers,
config.transformResponse
);
return Promise.resolve(config)
// Wrap synchronous adapter errors and pass configuration
.then(adapter)
.then(function onFulfilled(response) {
// Transform response data
response.data = transformData(
response.data,
response.headers,
return response;
}, function onAdapterRejection(error) {
// Transform response data
if (error && error.response) {
error.response.data = transformData(
error.response.data,
error.response.headers,
config.transformResponse
);
}
return response;
}, function onRejected(error) {
// Transform response data
if (error && error.response) {
error.response.data = transformData(
error.response.data,
error.response.headers,
config.transformResponse
);
}
return Promise.reject(error);
});
return Promise.reject(error);
});
};
+14
View File
@@ -14,7 +14,21 @@ function setContentTypeIfUnset(headers, value) {
}
}
function getDefaultAdapter() {
var adapter;
if (typeof XMLHttpRequest !== 'undefined') {
// For browsers use XHR adapter
adapter = require('./adapters/xhr');
} else if (typeof process !== 'undefined') {
// For node use HTTP adapter
adapter = require('./adapters/http');
}
return adapter;
}
module.exports = {
adapter: getDefaultAdapter(),
transformRequest: [function transformRequest(data, headers) {
normalizeHeaderName(headers, 'Content-Type');
if (utils.isFormData(data) ||