mirror of
https://github.com/tenrok/axios.git
synced 2026-06-20 20:00:40 +03:00
Releasing 0.9.0
This commit is contained in:
@@ -1,5 +1,13 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
### 0.9.0 (Jan 18, 2016)
|
||||||
|
|
||||||
|
- Adding support for custom adapters
|
||||||
|
- Fixing Content-Type header being removed when data is false ([#195](https://github.com/mzabriskie/axios/pull/195))
|
||||||
|
- Improving XDomainRequest implementation ([#185](https://github.com/mzabriskie/axios/pull/185))
|
||||||
|
- Improving config merging and order of precedence ([#183](https://github.com/mzabriskie/axios/pull/183))
|
||||||
|
- Fixing XDomainRequest support for only <= IE9 ([#182](https://github.com/mzabriskie/axios/pull/182))
|
||||||
|
|
||||||
### 0.8.1 (Dec 14, 2015)
|
### 0.8.1 (Dec 14, 2015)
|
||||||
|
|
||||||
- Adding support for passing XSRF token for cross domain requests when using `withCredentials` ([#168](https://github.com/mzabriskie/axios/pull/168))
|
- Adding support for passing XSRF token for cross domain requests when using `withCredentials` ([#168](https://github.com/mzabriskie/axios/pull/168))
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "axios",
|
"name": "axios",
|
||||||
"main": "./dist/axios.js",
|
"main": "./dist/axios.js",
|
||||||
"version": "0.8.1",
|
"version": "0.9.0",
|
||||||
"homepage": "https://github.com/mzabriskie/axios",
|
"homepage": "https://github.com/mzabriskie/axios",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Matt Zabriskie"
|
"Matt Zabriskie"
|
||||||
|
|||||||
Vendored
+85
-74
@@ -1,4 +1,4 @@
|
|||||||
/* axios v0.8.0 | (c) 2015 by Matt Zabriskie */
|
/* axios v0.9.0 | (c) 2016 by Matt Zabriskie */
|
||||||
(function webpackUniversalModuleDefinition(root, factory) {
|
(function webpackUniversalModuleDefinition(root, factory) {
|
||||||
if(typeof exports === 'object' && typeof module === 'object')
|
if(typeof exports === 'object' && typeof module === 'object')
|
||||||
module.exports = factory();
|
module.exports = factory();
|
||||||
@@ -70,15 +70,10 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
var isAbsoluteURL = __webpack_require__(13);
|
var isAbsoluteURL = __webpack_require__(13);
|
||||||
var combineURLs = __webpack_require__(14);
|
var combineURLs = __webpack_require__(14);
|
||||||
var bind = __webpack_require__(15);
|
var bind = __webpack_require__(15);
|
||||||
|
var transformData = __webpack_require__(8);
|
||||||
|
|
||||||
function Axios(defaultConfig) {
|
function Axios(defaultConfig) {
|
||||||
this.defaultConfig = utils.merge({
|
this.defaults = utils.merge({}, defaultConfig);
|
||||||
headers: {},
|
|
||||||
timeout: defaults.timeout,
|
|
||||||
transformRequest: defaults.transformRequest,
|
|
||||||
transformResponse: defaults.transformResponse
|
|
||||||
}, defaultConfig);
|
|
||||||
|
|
||||||
this.interceptors = {
|
this.interceptors = {
|
||||||
request: new InterceptorManager(),
|
request: new InterceptorManager(),
|
||||||
response: new InterceptorManager()
|
response: new InterceptorManager()
|
||||||
@@ -94,14 +89,36 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
}, arguments[1]);
|
}, arguments[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
config = utils.merge(this.defaultConfig, { method: 'get' }, config);
|
config = utils.merge(defaults, this.defaults, { method: 'get' }, config);
|
||||||
|
|
||||||
|
// Support baseURL config
|
||||||
if (config.baseURL && !isAbsoluteURL(config.url)) {
|
if (config.baseURL && !isAbsoluteURL(config.url)) {
|
||||||
config.url = combineURLs(config.baseURL, config.url);
|
config.url = combineURLs(config.baseURL, config.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't allow overriding defaults.withCredentials
|
// Don't allow overriding defaults.withCredentials
|
||||||
config.withCredentials = config.withCredentials || defaults.withCredentials;
|
config.withCredentials = config.withCredentials || this.defaults.withCredentials;
|
||||||
|
|
||||||
|
// Transform request data
|
||||||
|
config.data = transformData(
|
||||||
|
config.data,
|
||||||
|
config.headers,
|
||||||
|
config.transformRequest
|
||||||
|
);
|
||||||
|
|
||||||
|
// Flatten headers
|
||||||
|
config.headers = utils.merge(
|
||||||
|
config.headers.common || {},
|
||||||
|
config.headers[config.method] || {},
|
||||||
|
config.headers || {}
|
||||||
|
);
|
||||||
|
|
||||||
|
utils.forEach(
|
||||||
|
['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
|
||||||
|
function cleanHeaderConfig(method) {
|
||||||
|
delete config.headers[method];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// Hook up interceptors middleware
|
// Hook up interceptors middleware
|
||||||
var chain = [dispatchRequest, undefined];
|
var chain = [dispatchRequest, undefined];
|
||||||
@@ -122,8 +139,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
return promise;
|
return promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
var defaultInstance = new Axios();
|
var defaultInstance = new Axios(defaults);
|
||||||
|
|
||||||
var axios = module.exports = bind(Axios.prototype.request, defaultInstance);
|
var axios = module.exports = bind(Axios.prototype.request, defaultInstance);
|
||||||
|
|
||||||
axios.create = function create(defaultConfig) {
|
axios.create = function create(defaultConfig) {
|
||||||
@@ -131,7 +147,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Expose defaults
|
// Expose defaults
|
||||||
axios.defaults = defaults;
|
axios.defaults = defaultInstance.defaults;
|
||||||
|
|
||||||
// Expose all/spread
|
// Expose all/spread
|
||||||
axios.all = function all(promises) {
|
axios.all = function all(promises) {
|
||||||
@@ -454,7 +470,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
function merge(/* obj1, obj2, obj3, ... */) {
|
function merge(/* obj1, obj2, obj3, ... */) {
|
||||||
var result = {};
|
var result = {};
|
||||||
function assignValue(val, key) {
|
function assignValue(val, key) {
|
||||||
result[key] = val;
|
if (typeof result[key] === 'object' && typeof val === 'object') {
|
||||||
|
result[key] = merge(result[key], val);
|
||||||
|
} else {
|
||||||
|
result[key] = val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0, l = arguments.length; i < l; i++) {
|
for (var i = 0, l = arguments.length; i < l; i++) {
|
||||||
@@ -498,12 +518,21 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
module.exports = function dispatchRequest(config) {
|
module.exports = function dispatchRequest(config) {
|
||||||
return new Promise(function executor(resolve, reject) {
|
return new Promise(function executor(resolve, reject) {
|
||||||
try {
|
try {
|
||||||
if ((typeof XMLHttpRequest !== 'undefined') || (typeof ActiveXObject !== 'undefined')) {
|
var adapter;
|
||||||
|
|
||||||
|
if (typeof config.adapter === 'function') {
|
||||||
|
// For custom adapter support
|
||||||
|
adapter = config.adapter;
|
||||||
|
} else if (typeof XMLHttpRequest !== 'undefined') {
|
||||||
// For browsers use XHR adapter
|
// For browsers use XHR adapter
|
||||||
__webpack_require__(5)(resolve, reject, config);
|
adapter = __webpack_require__(5);
|
||||||
} else if (typeof process !== 'undefined') {
|
} else if (typeof process !== 'undefined') {
|
||||||
// For node use HTTP adapter
|
// For node use HTTP adapter
|
||||||
__webpack_require__(5)(resolve, reject, config);
|
adapter = __webpack_require__(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof adapter === 'function') {
|
||||||
|
adapter(resolve, reject, config);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
reject(e);
|
reject(e);
|
||||||
@@ -519,9 +548,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/*global ActiveXObject:true*/
|
|
||||||
|
|
||||||
var defaults = __webpack_require__(2);
|
|
||||||
var utils = __webpack_require__(3);
|
var utils = __webpack_require__(3);
|
||||||
var buildURL = __webpack_require__(6);
|
var buildURL = __webpack_require__(6);
|
||||||
var parseHeaders = __webpack_require__(7);
|
var parseHeaders = __webpack_require__(7);
|
||||||
@@ -530,33 +556,19 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
var btoa = window.btoa || __webpack_require__(10);
|
var btoa = window.btoa || __webpack_require__(10);
|
||||||
|
|
||||||
module.exports = function xhrAdapter(resolve, reject, config) {
|
module.exports = function xhrAdapter(resolve, reject, config) {
|
||||||
// Transform request data
|
var requestData = config.data;
|
||||||
var data = transformData(
|
var requestHeaders = config.headers;
|
||||||
config.data,
|
|
||||||
config.headers,
|
|
||||||
config.transformRequest
|
|
||||||
);
|
|
||||||
|
|
||||||
// Merge headers
|
if (utils.isFormData(requestData)) {
|
||||||
var requestHeaders = utils.merge(
|
|
||||||
defaults.headers.common,
|
|
||||||
defaults.headers[config.method] || {},
|
|
||||||
config.headers || {}
|
|
||||||
);
|
|
||||||
|
|
||||||
if (utils.isFormData(data)) {
|
|
||||||
delete requestHeaders['Content-Type']; // Let the browser set it
|
delete requestHeaders['Content-Type']; // Let the browser set it
|
||||||
}
|
}
|
||||||
|
|
||||||
var Adapter = (XMLHttpRequest || ActiveXObject);
|
var request = new XMLHttpRequest();
|
||||||
var loadEvent = 'onreadystatechange';
|
|
||||||
var xDomain = false;
|
|
||||||
|
|
||||||
// For IE 8/9 CORS support
|
// For IE 8/9 CORS support
|
||||||
if (!isURLSameOrigin(config.url) && window.XDomainRequest) {
|
// Only supports POST and GET calls and doesn't returns the response headers.
|
||||||
Adapter = window.XDomainRequest;
|
if (window.XDomainRequest && !('withCredentials' in request) && !isURLSameOrigin(config.url)) {
|
||||||
loadEvent = 'onload';
|
request = new window.XDomainRequest();
|
||||||
xDomain = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// HTTP basic authentication
|
// HTTP basic authentication
|
||||||
@@ -566,38 +578,37 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
|
requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the request
|
|
||||||
var request = new Adapter('Microsoft.XMLHTTP');
|
|
||||||
request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);
|
request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);
|
||||||
|
|
||||||
// Set the request timeout in MS
|
// Set the request timeout in MS
|
||||||
request.timeout = config.timeout;
|
request.timeout = config.timeout;
|
||||||
|
|
||||||
// Listen for ready state
|
// Listen for ready state
|
||||||
request[loadEvent] = function handleReadyState() {
|
request.onload = function handleLoad() {
|
||||||
if (request && (request.readyState === 4 || xDomain)) {
|
if (!request) {
|
||||||
// Prepare the response
|
return;
|
||||||
var responseHeaders = xDomain ? null : parseHeaders(request.getAllResponseHeaders());
|
|
||||||
var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;
|
|
||||||
var response = {
|
|
||||||
data: transformData(
|
|
||||||
responseData,
|
|
||||||
responseHeaders,
|
|
||||||
config.transformResponse
|
|
||||||
),
|
|
||||||
status: request.status,
|
|
||||||
statusText: request.statusText,
|
|
||||||
headers: responseHeaders,
|
|
||||||
config: config
|
|
||||||
};
|
|
||||||
// Resolve or reject the Promise based on the status
|
|
||||||
((request.status >= 200 && request.status < 300) || (xDomain && request.responseText) ?
|
|
||||||
resolve :
|
|
||||||
reject)(response);
|
|
||||||
|
|
||||||
// Clean up request
|
|
||||||
request = null;
|
|
||||||
}
|
}
|
||||||
|
// Prepare the response
|
||||||
|
var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;
|
||||||
|
var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;
|
||||||
|
var response = {
|
||||||
|
data: transformData(
|
||||||
|
responseData,
|
||||||
|
responseHeaders,
|
||||||
|
config.transformResponse
|
||||||
|
),
|
||||||
|
status: request.status,
|
||||||
|
statusText: request.statusText,
|
||||||
|
headers: responseHeaders,
|
||||||
|
config: config
|
||||||
|
};
|
||||||
|
// Resolve or reject the Promise based on the status
|
||||||
|
((request.status >= 200 && request.status < 300) || (!('status' in request) && request.responseText) ?
|
||||||
|
resolve :
|
||||||
|
reject)(response);
|
||||||
|
|
||||||
|
// Clean up request
|
||||||
|
request = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Add xsrf header
|
// Add xsrf header
|
||||||
@@ -607,19 +618,19 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
var cookies = __webpack_require__(11);
|
var cookies = __webpack_require__(11);
|
||||||
|
|
||||||
// Add xsrf header
|
// Add xsrf header
|
||||||
var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?
|
var xsrfValue = config.withCredentials || isURLSameOrigin(config.url) ?
|
||||||
cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) :
|
cookies.read(config.xsrfCookieName) :
|
||||||
undefined;
|
undefined;
|
||||||
|
|
||||||
if (xsrfValue) {
|
if (xsrfValue) {
|
||||||
requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
|
requestHeaders[config.xsrfHeaderName] = xsrfValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add headers to the request
|
// Add headers to the request
|
||||||
if (!xDomain) {
|
if ('setRequestHeader' in request) {
|
||||||
utils.forEach(requestHeaders, function setRequestHeader(val, key) {
|
utils.forEach(requestHeaders, function setRequestHeader(val, key) {
|
||||||
if (!data && key.toLowerCase() === 'content-type') {
|
if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
|
||||||
// Remove Content-Type if data is undefined
|
// Remove Content-Type if data is undefined
|
||||||
delete requestHeaders[key];
|
delete requestHeaders[key];
|
||||||
} else {
|
} else {
|
||||||
@@ -645,12 +656,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (utils.isArrayBuffer(data)) {
|
if (utils.isArrayBuffer(requestData)) {
|
||||||
data = new DataView(data);
|
requestData = new DataView(requestData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send the request
|
// Send the request
|
||||||
request.send(data);
|
request.send(requestData);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "axios",
|
"name": "axios",
|
||||||
"version": "0.8.1",
|
"version": "0.9.0",
|
||||||
"description": "Promise based HTTP client for the browser and node.js",
|
"description": "Promise based HTTP client for the browser and node.js",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user