2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-14 18:42:33 +03:00

Changing adapter signature to receive config and return promises

This commit is contained in:
Rubén Norte
2016-07-09 21:30:16 +02:00
parent 8f3a4301ab
commit 157efd5615
6 changed files with 311 additions and 339 deletions
+23 -29
View File
@@ -2,7 +2,6 @@
var utils = require('./../utils');
var transformData = require('./transformData');
var enhanceError = require('./enhanceError');
/**
* Dispatch a request to the server using whichever adapter
@@ -36,35 +35,30 @@ module.exports = function dispatchRequest(config) {
}
);
return new Promise(function executor(resolve, reject) {
try {
var adapter;
var 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');
}
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');
}
if (typeof adapter === 'function') {
adapter(resolve, reject, config);
}
} catch (e) {
reject(enhanceError(e, config));
}
}).then(function onFulfilled(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,
config.transformResponse
);
return response;
});
return response;
});
};