2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-17 19:21:29 +03:00

Merge branch 'master' of github.com:axios/axios

This commit is contained in:
Jay
2022-02-13 15:57:46 +02:00
7 changed files with 103 additions and 120 deletions
Vendored
-3
View File
@@ -107,9 +107,6 @@ export interface AxiosRequestConfig<D = any> {
transitional?: TransitionalOptions; transitional?: TransitionalOptions;
signal?: AbortSignal; signal?: AbortSignal;
insecureHTTPParser?: boolean; insecureHTTPParser?: boolean;
env?: {
FormData?: new (...args: any[]) => object;
};
} }
export interface HeadersDefaults { export interface HeadersDefaults {
+1 -3
View File
@@ -87,9 +87,7 @@ module.exports = function httpAdapter(config) {
headers['User-Agent'] = 'axios/' + VERSION; headers['User-Agent'] = 'axios/' + VERSION;
} }
if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) { if (data && !utils.isStream(data)) {
Object.assign(headers, data.getHeaders());
} else if (data && !utils.isStream(data)) {
if (Buffer.isBuffer(data)) { if (Buffer.isBuffer(data)) {
// Nothing to do... // Nothing to do...
} else if (utils.isArrayBuffer(data)) { } else if (utils.isArrayBuffer(data)) {
+1 -11
View File
@@ -3,7 +3,6 @@
var utils = require('./utils'); var utils = require('./utils');
var normalizeHeaderName = require('./helpers/normalizeHeaderName'); var normalizeHeaderName = require('./helpers/normalizeHeaderName');
var enhanceError = require('./core/enhanceError'); var enhanceError = require('./core/enhanceError');
var toFormData = require('./helpers/toFormData');
var DEFAULT_CONTENT_TYPE = { var DEFAULT_CONTENT_TYPE = {
'Content-Type': 'application/x-www-form-urlencoded' 'Content-Type': 'application/x-www-form-urlencoded'
@@ -72,17 +71,10 @@ var defaults = {
setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
return data.toString(); return data.toString();
} }
if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {
var isObjectPayload = utils.isObject(data);
var contentType = headers && headers['Content-Type'];
if ( isObjectPayload && contentType === 'multipart/form-data' ) {
return toFormData(data, new (this.env && this.env.FormData || FormData));
} else if ( isObjectPayload || contentType === 'application/json' ) {
setContentTypeIfUnset(headers, 'application/json'); setContentTypeIfUnset(headers, 'application/json');
return stringifySafely(data); return stringifySafely(data);
} }
return data; return data;
}], }],
@@ -120,8 +112,6 @@ var defaults = {
maxContentLength: -1, maxContentLength: -1,
maxBodyLength: -1, maxBodyLength: -1,
env: {},
validateStatus: function validateStatus(status) { validateStatus: function validateStatus(status) {
return status >= 200 && status < 300; return status >= 200 && status < 300;
}, },
+3 -7
View File
@@ -1,7 +1,5 @@
'use strict'; 'use strict';
var utils = require('../utils');
function combinedKey(parentKey, elKey) { function combinedKey(parentKey, elKey) {
return parentKey + '.' + elKey; return parentKey + '.' + elKey;
} }
@@ -13,7 +11,7 @@ function buildFormData(formData, data, parentKey) {
}); });
} else if ( } else if (
typeof data === 'object' && typeof data === 'object' &&
!(utils.isFile(data) || data === null) !(data instanceof File || data === null)
) { ) {
Object.keys(data).forEach(function buildObject(key) { Object.keys(data).forEach(function buildObject(key) {
buildFormData( buildFormData(
@@ -46,12 +44,10 @@ function buildFormData(formData, data, parentKey) {
* type FormVal = FormDataNest | FormDataPrimitive * type FormVal = FormDataNest | FormDataPrimitive
* *
* @param {FormVal} data * @param {FormVal} data
* @param {?Object} formData
*/ */
module.exports = function getFormData(data, formData) { module.exports = function getFormData(data) {
// eslint-disable-next-line no-param-reassign var formData = new FormData();
formData = formData || new FormData();
buildFormData(formData, data); buildFormData(formData, data);
+9 -15
View File
@@ -47,6 +47,15 @@ function isArrayBuffer(val) {
return toString.call(val) === '[object ArrayBuffer]'; return toString.call(val) === '[object ArrayBuffer]';
} }
/**
* Determine if a value is a FormData
*
* @param {Object} val The value to test
* @returns {boolean} True if value is an FormData, otherwise false
*/
function isFormData(val) {
return toString.call(val) === '[object FormData]';
}
/** /**
* Determine if a value is a view on an ArrayBuffer * Determine if a value is a view on an ArrayBuffer
@@ -159,21 +168,6 @@ function isStream(val) {
return isObject(val) && isFunction(val.pipe); return isObject(val) && isFunction(val.pipe);
} }
/**
* Determine if a value is a FormData
*
* @param {Object} thing The value to test
* @returns {boolean} True if value is an FormData, otherwise false
*/
function isFormData(thing) {
var pattern = '[object FormData]';
return thing && (
(typeof FormData === 'function' && thing instanceof FormData) ||
toString.call(thing) === pattern ||
(isFunction(thing.toString) && thing.toString() === pattern)
);
}
/** /**
* Determine if a value is a URLSearchParams object * Determine if a value is a URLSearchParams object
* *
+88 -80
View File
@@ -3169,9 +3169,9 @@
} }
}, },
"node_modules/date-format": { "node_modules/date-format": {
"version": "3.0.0", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz",
"integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=4.0" "node": ">=4.0"
@@ -7949,9 +7949,9 @@
"dev": true "dev": true
}, },
"node_modules/karma": { "node_modules/karma": {
"version": "6.3.11", "version": "6.3.14",
"resolved": "https://registry.npmjs.org/karma/-/karma-6.3.11.tgz", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.14.tgz",
"integrity": "sha512-QGUh4yXgizzDNPLB5nWTvP+wysKexngbyLVWFOyikB661hpa2RZLf5anZQzqliWtAQuYVep0ot0D1U7UQKpsxQ==", "integrity": "sha512-SDFoU5F4LdosEiUVWUDRPCV/C1zQRNtIakx7rWkigf7R4sxGADlSEeOma4S1f/js7YAzvqLW92ByoiQptg+8oQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"body-parser": "^1.19.0", "body-parser": "^1.19.0",
@@ -7966,7 +7966,7 @@
"http-proxy": "^1.18.1", "http-proxy": "^1.18.1",
"isbinaryfile": "^4.0.8", "isbinaryfile": "^4.0.8",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"log4js": "^6.3.0", "log4js": "^6.4.1",
"mime": "^2.5.2", "mime": "^2.5.2",
"minimatch": "^3.0.4", "minimatch": "^3.0.4",
"qjobs": "^1.2.0", "qjobs": "^1.2.0",
@@ -8699,27 +8699,21 @@
} }
}, },
"node_modules/log4js": { "node_modules/log4js": {
"version": "6.3.0", "version": "6.4.1",
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz",
"integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"date-format": "^3.0.0", "date-format": "^4.0.3",
"debug": "^4.1.1", "debug": "^4.3.3",
"flatted": "^2.0.1", "flatted": "^3.2.4",
"rfdc": "^1.1.4", "rfdc": "^1.3.0",
"streamroller": "^2.2.4" "streamroller": "^3.0.2"
}, },
"engines": { "engines": {
"node": ">=8.0" "node": ">=8.0"
} }
}, },
"node_modules/log4js/node_modules/flatted": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
"dev": true
},
"node_modules/loglevel": { "node_modules/loglevel": {
"version": "1.8.0", "version": "1.8.0",
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz",
@@ -13095,40 +13089,52 @@
"dev": true "dev": true
}, },
"node_modules/streamroller": { "node_modules/streamroller": {
"version": "2.2.4", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz",
"integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"date-format": "^2.1.0", "date-format": "^4.0.3",
"debug": "^4.1.1", "debug": "^4.1.1",
"fs-extra": "^8.1.0" "fs-extra": "^10.0.0"
}, },
"engines": { "engines": {
"node": ">=8.0" "node": ">=8.0"
} }
}, },
"node_modules/streamroller/node_modules/date-format": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
"integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
"dev": true,
"engines": {
"node": ">=4.0"
}
},
"node_modules/streamroller/node_modules/fs-extra": { "node_modules/streamroller/node_modules/fs-extra": {
"version": "8.1.0", "version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"graceful-fs": "^4.2.0", "graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0", "jsonfile": "^6.0.1",
"universalify": "^0.1.0" "universalify": "^2.0.0"
}, },
"engines": { "engines": {
"node": ">=6 <7 || >=8" "node": ">=12"
}
},
"node_modules/streamroller/node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/streamroller/node_modules/universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true,
"engines": {
"node": ">= 10.0.0"
} }
}, },
"node_modules/strict-uri-encode": { "node_modules/strict-uri-encode": {
@@ -18833,9 +18839,9 @@
} }
}, },
"date-format": { "date-format": {
"version": "3.0.0", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz",
"integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==",
"dev": true "dev": true
}, },
"dateformat": { "dateformat": {
@@ -22669,9 +22675,9 @@
"dev": true "dev": true
}, },
"karma": { "karma": {
"version": "6.3.11", "version": "6.3.14",
"resolved": "https://registry.npmjs.org/karma/-/karma-6.3.11.tgz", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.14.tgz",
"integrity": "sha512-QGUh4yXgizzDNPLB5nWTvP+wysKexngbyLVWFOyikB661hpa2RZLf5anZQzqliWtAQuYVep0ot0D1U7UQKpsxQ==", "integrity": "sha512-SDFoU5F4LdosEiUVWUDRPCV/C1zQRNtIakx7rWkigf7R4sxGADlSEeOma4S1f/js7YAzvqLW92ByoiQptg+8oQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"body-parser": "^1.19.0", "body-parser": "^1.19.0",
@@ -22686,7 +22692,7 @@
"http-proxy": "^1.18.1", "http-proxy": "^1.18.1",
"isbinaryfile": "^4.0.8", "isbinaryfile": "^4.0.8",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"log4js": "^6.3.0", "log4js": "^6.4.1",
"mime": "^2.5.2", "mime": "^2.5.2",
"minimatch": "^3.0.4", "minimatch": "^3.0.4",
"qjobs": "^1.2.0", "qjobs": "^1.2.0",
@@ -23281,24 +23287,16 @@
} }
}, },
"log4js": { "log4js": {
"version": "6.3.0", "version": "6.4.1",
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz",
"integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==",
"dev": true, "dev": true,
"requires": { "requires": {
"date-format": "^3.0.0", "date-format": "^4.0.3",
"debug": "^4.1.1", "debug": "^4.3.3",
"flatted": "^2.0.1", "flatted": "^3.2.4",
"rfdc": "^1.1.4", "rfdc": "^1.3.0",
"streamroller": "^2.2.4" "streamroller": "^3.0.2"
},
"dependencies": {
"flatted": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
"dev": true
}
} }
}, },
"loglevel": { "loglevel": {
@@ -26883,32 +26881,42 @@
"dev": true "dev": true
}, },
"streamroller": { "streamroller": {
"version": "2.2.4", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz",
"integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==",
"dev": true, "dev": true,
"requires": { "requires": {
"date-format": "^2.1.0", "date-format": "^4.0.3",
"debug": "^4.1.1", "debug": "^4.1.1",
"fs-extra": "^8.1.0" "fs-extra": "^10.0.0"
}, },
"dependencies": { "dependencies": {
"date-format": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
"integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
"dev": true
},
"fs-extra": { "fs-extra": {
"version": "8.1.0", "version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "^4.2.0", "graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0", "jsonfile": "^6.0.1",
"universalify": "^0.1.0" "universalify": "^2.0.0"
} }
},
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
} }
} }
}, },
+1 -1
View File
@@ -1,7 +1,7 @@
var toFormData = require("../../../lib/helpers/toFormData"); var toFormData = require("../../../lib/helpers/toFormData");
describe("toFormData", function () { describe("toFormData", function () {
it("Convert nested data object to FormData", function () { it("Convert nested data object to FormDAta", function () {
var o = { var o = {
val: 123, val: 123,
nested: { nested: {