mirror of
https://github.com/tenrok/axios.git
synced 2026-05-15 11:59:42 +03:00
Adding ESLint
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"globals": {
|
||||
"console": true,
|
||||
"module": true,
|
||||
"require": true
|
||||
},
|
||||
"env": {
|
||||
"browser": true
|
||||
},
|
||||
"rules": {
|
||||
"quotes": "single"
|
||||
}
|
||||
}
|
||||
+5
-1
@@ -48,6 +48,10 @@ module.exports = function(grunt) {
|
||||
}
|
||||
},
|
||||
|
||||
eslint: {
|
||||
target: ['lib/**/*.js']
|
||||
},
|
||||
|
||||
karma: {
|
||||
options: {
|
||||
configFile: 'karma.conf.js'
|
||||
@@ -78,7 +82,7 @@ module.exports = function(grunt) {
|
||||
}
|
||||
});
|
||||
|
||||
grunt.registerTask('test', 'Run the jasmine and nodeunit tests', ['webpack:global', 'nodeunit', 'karma:single', 'ts']);
|
||||
grunt.registerTask('test', 'Run the jasmine and nodeunit tests', ['eslint', 'webpack:global', 'nodeunit', 'karma:single', 'ts']);
|
||||
grunt.registerTask('build', 'Run webpack and bundle the source', ['webpack']);
|
||||
grunt.registerTask('publish', 'Prepare the code for release', ['clean', 'test', 'build', 'usebanner', 'update_json']);
|
||||
};
|
||||
|
||||
@@ -9,6 +9,8 @@ var pkg = require('./../../package.json');
|
||||
var Buffer = require('buffer').Buffer;
|
||||
|
||||
module.exports = function httpAdapter(resolve, reject, config) {
|
||||
'use strict';
|
||||
|
||||
// Transform request data
|
||||
var data = transformData(
|
||||
config.data,
|
||||
@@ -71,9 +73,9 @@ module.exports = function httpAdapter(resolve, reject, config) {
|
||||
};
|
||||
|
||||
// Resolve or reject the Promise based on the status
|
||||
(res.statusCode >= 200 && res.statusCode < 300
|
||||
? resolve
|
||||
: reject)(response);
|
||||
(res.statusCode >= 200 && res.statusCode < 300 ?
|
||||
resolve :
|
||||
reject)(response);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
+19
-15
@@ -1,3 +1,5 @@
|
||||
/*global ActiveXObject:true*/
|
||||
|
||||
var defaults = require('./../defaults');
|
||||
var utils = require('./../utils');
|
||||
var buildUrl = require('./../helpers/buildUrl');
|
||||
@@ -7,6 +9,8 @@ var transformData = require('./../helpers/transformData');
|
||||
var urlIsSameOrigin = require('./../helpers/urlIsSameOrigin');
|
||||
|
||||
module.exports = function xhrAdapter(resolve, reject, config) {
|
||||
'use strict';
|
||||
|
||||
// Transform request data
|
||||
var data = transformData(
|
||||
config.data,
|
||||
@@ -15,42 +19,42 @@ module.exports = function xhrAdapter(resolve, reject, config) {
|
||||
);
|
||||
|
||||
// Merge headers
|
||||
var headers = utils.merge(
|
||||
var requestHeaders = utils.merge(
|
||||
defaults.headers.common,
|
||||
defaults.headers[config.method] || {},
|
||||
config.headers || {}
|
||||
);
|
||||
|
||||
if (utils.isFormData(data)) {
|
||||
delete headers['Content-Type']; // Let the browser set it
|
||||
delete requestHeaders['Content-Type']; // Let the browser set it
|
||||
}
|
||||
|
||||
// Create the request
|
||||
var request = new(XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP');
|
||||
var request = new (XMLHttpRequest || ActiveXObject)('Microsoft.XMLHTTP');
|
||||
request.open(config.method.toUpperCase(), buildUrl(config.url, config.params), true);
|
||||
|
||||
// Listen for ready state
|
||||
request.onreadystatechange = function () {
|
||||
if (request && request.readyState === 4) {
|
||||
// Prepare the response
|
||||
var headers = parseHeaders(request.getAllResponseHeaders());
|
||||
var responseHeaders = parseHeaders(request.getAllResponseHeaders());
|
||||
var responseData = ['text', ''].indexOf(config.responseType || '') !== -1 ? request.responseText : request.response;
|
||||
var response = {
|
||||
data: transformData(
|
||||
responseData,
|
||||
headers,
|
||||
responseHeaders,
|
||||
config.transformResponse
|
||||
),
|
||||
status: request.status,
|
||||
statusText: request.statusText,
|
||||
headers: headers,
|
||||
headers: responseHeaders,
|
||||
config: config
|
||||
};
|
||||
|
||||
// Resolve or reject the Promise based on the status
|
||||
(request.status >= 200 && request.status < 300
|
||||
? resolve
|
||||
: reject)(response);
|
||||
(request.status >= 200 && request.status < 300 ?
|
||||
resolve :
|
||||
reject)(response);
|
||||
|
||||
// Clean up request
|
||||
request = null;
|
||||
@@ -58,18 +62,18 @@ module.exports = function xhrAdapter(resolve, reject, config) {
|
||||
};
|
||||
|
||||
// Add xsrf header
|
||||
var xsrfValue = urlIsSameOrigin(config.url)
|
||||
? cookies.read(config.xsrfCookieName || defaults.xsrfCookieName)
|
||||
: undefined;
|
||||
var xsrfValue = urlIsSameOrigin(config.url) ?
|
||||
cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) :
|
||||
undefined;
|
||||
if (xsrfValue) {
|
||||
headers[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
|
||||
requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
|
||||
}
|
||||
|
||||
// Add headers to the request
|
||||
utils.forEach(headers, function (val, key) {
|
||||
utils.forEach(requestHeaders, function (val, key) {
|
||||
// Remove Content-Type if data is undefined
|
||||
if (!data && key.toLowerCase() === 'content-type') {
|
||||
delete headers[key];
|
||||
delete requestHeaders[key];
|
||||
}
|
||||
// Otherwise add header to the request
|
||||
else {
|
||||
|
||||
+31
-23
@@ -6,6 +6,8 @@ var InterceptorManager = require('./core/InterceptorManager');
|
||||
|
||||
// Polyfill ES6 Promise if needed
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
// webpack is being used to set es6-promise to the native Promise
|
||||
// for the standalone build. It's necessary to make sure polyfill exists.
|
||||
var P = require('es6-promise');
|
||||
@@ -15,6 +17,8 @@ var InterceptorManager = require('./core/InterceptorManager');
|
||||
})();
|
||||
|
||||
var axios = module.exports = function axios(config) {
|
||||
'use strict';
|
||||
|
||||
config = utils.merge({
|
||||
method: 'get',
|
||||
headers: {},
|
||||
@@ -69,6 +73,7 @@ axios.defaults = defaults;
|
||||
|
||||
// Expose all/spread
|
||||
axios.all = function (promises) {
|
||||
'use strict';
|
||||
return Promise.all(promises);
|
||||
};
|
||||
axios.spread = require('./helpers/spread');
|
||||
@@ -80,29 +85,32 @@ axios.interceptors = {
|
||||
};
|
||||
|
||||
// Provide aliases for supported request methods
|
||||
createShortMethods('delete', 'get', 'head');
|
||||
createShortMethodsWithData('post', 'put', 'patch');
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
function createShortMethods() {
|
||||
utils.forEach(arguments, function (method) {
|
||||
axios[method] = function (url, config) {
|
||||
return axios(utils.merge(config || {}, {
|
||||
method: method,
|
||||
url: url
|
||||
}));
|
||||
};
|
||||
});
|
||||
}
|
||||
function createShortMethods() {
|
||||
utils.forEach(arguments, function (method) {
|
||||
axios[method] = function (url, config) {
|
||||
return axios(utils.merge(config || {}, {
|
||||
method: method,
|
||||
url: url
|
||||
}));
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function createShortMethodsWithData() {
|
||||
utils.forEach(arguments, function (method) {
|
||||
axios[method] = function (url, data, config) {
|
||||
return axios(utils.merge(config || {}, {
|
||||
method: method,
|
||||
url: url,
|
||||
data: data
|
||||
}));
|
||||
};
|
||||
});
|
||||
}
|
||||
function createShortMethodsWithData() {
|
||||
utils.forEach(arguments, function (method) {
|
||||
axios[method] = function (url, data, config) {
|
||||
return axios(utils.merge(config || {}, {
|
||||
method: method,
|
||||
url: url,
|
||||
data: data
|
||||
}));
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
createShortMethods('delete', 'get', 'head');
|
||||
createShortMethodsWithData('post', 'put', 'patch');
|
||||
})();
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('./../utils');
|
||||
|
||||
function InterceptorManager() {
|
||||
'use strict';
|
||||
this.handlers = [];
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new interceptor to the stack
|
||||
@@ -15,6 +14,7 @@ function InterceptorManager() {
|
||||
* @return {Number} An ID used to remove interceptor later
|
||||
*/
|
||||
InterceptorManager.prototype.use = function (fulfilled, rejected) {
|
||||
'use strict';
|
||||
this.handlers.push({
|
||||
fulfilled: fulfilled,
|
||||
rejected: rejected
|
||||
@@ -28,6 +28,7 @@ InterceptorManager.prototype.use = function (fulfilled, rejected) {
|
||||
* @param {Number} id The ID that was returned by `use`
|
||||
*/
|
||||
InterceptorManager.prototype.eject = function (id) {
|
||||
'use strict';
|
||||
if (this.handlers[id]) {
|
||||
this.handlers[id] = null;
|
||||
}
|
||||
@@ -42,12 +43,12 @@ InterceptorManager.prototype.eject = function (id) {
|
||||
* @param {Function} fn The function to call for each interceptor
|
||||
*/
|
||||
InterceptorManager.prototype.forEach = function (fn) {
|
||||
'use strict';
|
||||
utils.forEach(this.handlers, function (h) {
|
||||
if (h !== null) {
|
||||
fn(h);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = InterceptorManager;
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Dispatch a request to the server using whichever adapter
|
||||
* is supported by the current environment.
|
||||
@@ -8,6 +6,8 @@
|
||||
* @returns {Promise} The Promise to be fulfilled
|
||||
*/
|
||||
module.exports = function dispatchRequest(config) {
|
||||
'use strict';
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
try {
|
||||
// For browsers use XHR adapter
|
||||
|
||||
+3
-3
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('./utils');
|
||||
|
||||
var JSON_START = /^\s*(\[|\{[^\{])/;
|
||||
@@ -11,6 +9,7 @@ var DEFAULT_CONTENT_TYPE = {
|
||||
|
||||
module.exports = {
|
||||
transformRequest: [function (data, headers) {
|
||||
'use strict';
|
||||
if (utils.isArrayBuffer(data)) {
|
||||
return data;
|
||||
}
|
||||
@@ -28,6 +27,7 @@ module.exports = {
|
||||
}],
|
||||
|
||||
transformResponse: [function (data) {
|
||||
'use strict';
|
||||
if (typeof data === 'string') {
|
||||
data = data.replace(PROTECTION_PREFIX, '');
|
||||
if (JSON_START.test(data) && JSON_END.test(data)) {
|
||||
@@ -48,4 +48,4 @@ module.exports = {
|
||||
|
||||
xsrfCookieName: 'XSRF-TOKEN',
|
||||
xsrfHeaderName: 'X-XSRF-TOKEN'
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('./../utils');
|
||||
|
||||
function encode(val) {
|
||||
'use strict';
|
||||
return encodeURIComponent(val).
|
||||
replace(/%40/gi, '@').
|
||||
replace(/%3A/gi, ':').
|
||||
@@ -19,6 +18,7 @@ function encode(val) {
|
||||
* @returns {string} The formatted url
|
||||
*/
|
||||
module.exports = function buildUrl(url, params) {
|
||||
'use strict';
|
||||
if (!params) {
|
||||
return url;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('./../utils');
|
||||
|
||||
module.exports = {
|
||||
write: function write(name, value, expires, path, domain, secure) {
|
||||
'use strict';
|
||||
var cookie = [];
|
||||
cookie.push(name + '=' + encodeURIComponent(value));
|
||||
|
||||
@@ -27,11 +26,13 @@ module.exports = {
|
||||
},
|
||||
|
||||
read: function read(name) {
|
||||
'use strict';
|
||||
var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
|
||||
return (match ? decodeURIComponent(match[3]) : null);
|
||||
},
|
||||
|
||||
remove: function remove(name) {
|
||||
'use strict';
|
||||
this.write(name, '', Date.now() - 86400000);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Supply a warning to the developer that a method they are using
|
||||
* has been deprecated.
|
||||
@@ -9,6 +7,9 @@
|
||||
* @param {string} [docs] The documentation URL to get further details
|
||||
*/
|
||||
module.exports = function deprecatedMethod(method, instead, docs) {
|
||||
/*eslint-env node*/
|
||||
'use strict';
|
||||
|
||||
try {
|
||||
console.warn(
|
||||
'DEPRECATED method `' + method + '`.' +
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('./../utils');
|
||||
|
||||
/**
|
||||
@@ -16,9 +14,10 @@ var utils = require('./../utils');
|
||||
* @returns {Object} Headers parsed into an object
|
||||
*/
|
||||
module.exports = function parseHeaders(headers) {
|
||||
'use strict';
|
||||
var parsed = {}, key, val, i;
|
||||
|
||||
if (!headers) return parsed;
|
||||
if (!headers) { return parsed; }
|
||||
|
||||
utils.forEach(headers.split('\n'), function(line) {
|
||||
i = line.indexOf(':');
|
||||
@@ -31,4 +30,4 @@ module.exports = function parseHeaders(headers) {
|
||||
});
|
||||
|
||||
return parsed;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
* @returns {Function}
|
||||
*/
|
||||
module.exports = function spread(callback) {
|
||||
'use strict';
|
||||
return function (arr) {
|
||||
callback.apply(null, arr);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('./../utils');
|
||||
|
||||
/**
|
||||
@@ -11,9 +9,10 @@ var utils = require('./../utils');
|
||||
* @returns {*} The resulting transformed data
|
||||
*/
|
||||
module.exports = function transformData(data, headers, fns) {
|
||||
'use strict';
|
||||
utils.forEach(fns, function (fn) {
|
||||
data = fn(data, headers);
|
||||
});
|
||||
|
||||
return data;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
var msie = /(msie|trident)/i.test(navigator.userAgent);
|
||||
var utils = require('./../utils');
|
||||
var msie = /(msie|trident)/i.test(navigator.userAgent);
|
||||
var urlParsingNode = document.createElement('a');
|
||||
var originUrl = urlResolve(window.location.href);
|
||||
var originUrl;
|
||||
|
||||
/**
|
||||
* Parse a URL to discover it's components
|
||||
@@ -12,6 +10,7 @@ var originUrl = urlResolve(window.location.href);
|
||||
* @returns {Object}
|
||||
*/
|
||||
function urlResolve(url) {
|
||||
'use strict';
|
||||
var href = url;
|
||||
|
||||
if (msie) {
|
||||
@@ -31,12 +30,14 @@ function urlResolve(url) {
|
||||
hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
|
||||
hostname: urlParsingNode.hostname,
|
||||
port: urlParsingNode.port,
|
||||
pathname: (urlParsingNode.pathname.charAt(0) === '/')
|
||||
? urlParsingNode.pathname
|
||||
: '/' + urlParsingNode.pathname
|
||||
pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
|
||||
urlParsingNode.pathname :
|
||||
'/' + urlParsingNode.pathname
|
||||
};
|
||||
}
|
||||
|
||||
originUrl = urlResolve(window.location.href);
|
||||
|
||||
/**
|
||||
* Determine if a URL shares the same origin as the current location
|
||||
*
|
||||
@@ -44,7 +45,8 @@ function urlResolve(url) {
|
||||
* @returns {boolean} True if URL shares the same origin, otherwise false
|
||||
*/
|
||||
module.exports = function urlIsSameOrigin(requestUrl) {
|
||||
'use strict';
|
||||
var parsed = (utils.isString(requestUrl)) ? urlResolve(requestUrl) : requestUrl;
|
||||
return (parsed.protocol === originUrl.protocol &&
|
||||
parsed.host === originUrl.host);
|
||||
};
|
||||
};
|
||||
|
||||
+17
-2
@@ -1,3 +1,4 @@
|
||||
/*global toString:true*/
|
||||
// utils is a library of generic helper functions non-specific to axios
|
||||
|
||||
var toString = Object.prototype.toString;
|
||||
@@ -9,6 +10,7 @@ var toString = Object.prototype.toString;
|
||||
* @returns {boolean} True if value is an Array, otherwise false
|
||||
*/
|
||||
function isArray(val) {
|
||||
'use strict';
|
||||
return toString.call(val) === '[object Array]';
|
||||
}
|
||||
|
||||
@@ -19,6 +21,7 @@ function isArray(val) {
|
||||
* @returns {boolean} True if value is an ArrayBuffer, otherwise false
|
||||
*/
|
||||
function isArrayBuffer(val) {
|
||||
'use strict';
|
||||
return toString.call(val) === '[object ArrayBuffer]';
|
||||
}
|
||||
|
||||
@@ -29,6 +32,7 @@ function isArrayBuffer(val) {
|
||||
* @returns {boolean} True if value is an FormData, otherwise false
|
||||
*/
|
||||
function isFormData(val) {
|
||||
'use strict';
|
||||
return toString.call(val) === '[object FormData]';
|
||||
}
|
||||
|
||||
@@ -39,6 +43,7 @@ function isFormData(val) {
|
||||
* @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
|
||||
*/
|
||||
function isArrayBufferView(val) {
|
||||
'use strict';
|
||||
if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
|
||||
return ArrayBuffer.isView(val);
|
||||
} else {
|
||||
@@ -53,6 +58,7 @@ function isArrayBufferView(val) {
|
||||
* @returns {boolean} True if value is a String, otherwise false
|
||||
*/
|
||||
function isString(val) {
|
||||
'use strict';
|
||||
return typeof val === 'string';
|
||||
}
|
||||
|
||||
@@ -63,6 +69,7 @@ function isString(val) {
|
||||
* @returns {boolean} True if value is a Number, otherwise false
|
||||
*/
|
||||
function isNumber(val) {
|
||||
'use strict';
|
||||
return typeof val === 'number';
|
||||
}
|
||||
|
||||
@@ -73,6 +80,7 @@ function isNumber(val) {
|
||||
* @returns {boolean} True if the value is undefined, otherwise false
|
||||
*/
|
||||
function isUndefined(val) {
|
||||
'use strict';
|
||||
return typeof val === 'undefined';
|
||||
}
|
||||
|
||||
@@ -83,6 +91,7 @@ function isUndefined(val) {
|
||||
* @returns {boolean} True if value is an Object, otherwise false
|
||||
*/
|
||||
function isObject(val) {
|
||||
'use strict';
|
||||
return val !== null && typeof val === 'object';
|
||||
}
|
||||
|
||||
@@ -93,6 +102,7 @@ function isObject(val) {
|
||||
* @returns {boolean} True if value is a Date, otherwise false
|
||||
*/
|
||||
function isDate(val) {
|
||||
'use strict';
|
||||
return toString.call(val) === '[object Date]';
|
||||
}
|
||||
|
||||
@@ -103,6 +113,7 @@ function isDate(val) {
|
||||
* @returns {boolean} True if value is a File, otherwise false
|
||||
*/
|
||||
function isFile(val) {
|
||||
'use strict';
|
||||
return toString.call(val) === '[object File]';
|
||||
}
|
||||
|
||||
@@ -113,6 +124,7 @@ function isFile(val) {
|
||||
* @returns {boolean} True if value is a Blob, otherwise false
|
||||
*/
|
||||
function isBlob(val) {
|
||||
'use strict';
|
||||
return toString.call(val) === '[object Blob]';
|
||||
}
|
||||
|
||||
@@ -123,6 +135,7 @@ function isBlob(val) {
|
||||
* @returns {String} The String freed of excess whitespace
|
||||
*/
|
||||
function trim(str) {
|
||||
'use strict';
|
||||
return str.replace(/^\s*/, '').replace(/\s*$/, '');
|
||||
}
|
||||
|
||||
@@ -139,6 +152,7 @@ function trim(str) {
|
||||
* @param {Function} fn The callback to invoke for each item
|
||||
*/
|
||||
function forEach(obj, fn) {
|
||||
'use strict';
|
||||
// Don't bother if no value provided
|
||||
if (obj === null || typeof obj === 'undefined') {
|
||||
return;
|
||||
@@ -154,7 +168,7 @@ function forEach(obj, fn) {
|
||||
|
||||
// Iterate over array values
|
||||
if (isArrayLike) {
|
||||
for (var i=0, l=obj.length; i<l; i++) {
|
||||
for (var i = 0, l = obj.length; i < l; i++) {
|
||||
fn.call(null, obj[i], i, obj);
|
||||
}
|
||||
}
|
||||
@@ -185,7 +199,8 @@ function forEach(obj, fn) {
|
||||
* @param {Object} obj1 Object to merge
|
||||
* @returns {Object} Result of all merge properties
|
||||
*/
|
||||
function merge(obj1/*, obj2, obj3, ...*/) {
|
||||
function merge(/*obj1, obj2, obj3, ...*/) {
|
||||
'use strict';
|
||||
var result = {};
|
||||
forEach(arguments, function (obj) {
|
||||
forEach(obj, function (val, key) {
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
"grunt-contrib-clean": "^0.6.0",
|
||||
"grunt-contrib-nodeunit": "^0.4.1",
|
||||
"grunt-contrib-watch": "^0.6.1",
|
||||
"grunt-eslint": "^9.0.0",
|
||||
"grunt-karma": "^0.10.1",
|
||||
"grunt-ts": "^3.0.0",
|
||||
"grunt-update-json": "^0.2.1",
|
||||
|
||||
Reference in New Issue
Block a user