mirror of
https://github.com/tenrok/axios.git
synced 2026-06-14 18:42:33 +03:00
Axios ES2017 (#4787)
* Added AxiosHeaders class; * Fixed README.md href; * Fixed a potential bug with headers normalization; * Fixed a potential bug with headers normalization; Refactored accessor building routine; Refactored default transforms; Removed `normalizeHeaderName` helper; * Added `Content-Length` accessor; Added missed `has` accessor to TS types; * Added `AxiosTransformStream` class; Added progress capturing ability for node.js environment; Added `maxRate` option to limit the data rate in node.js environment; Refactored event handled by `onUploadProgress` && `onDownloadProgress` listeners in browser environment; Added progress & data rate tests for the http adapter; Added response stream aborting test; Added a manual progress capture test for the browser; Updated TS types; Added TS tests; Refactored request abort logic for the http adapter; Added ability to abort the response stream; * Remove `stream/promises` & `timers/promises` modules usage in tests; * Use `abortcontroller-polyfill`; * Fixed AxiosTransformStream dead-lock in legacy node versions; Fixed CancelError emitting in streams; * Reworked AxiosTransformStream internal logic to optimize memory consumption; Added throwing an error if the request stream was silently destroying (without error) Refers to #3966; * Treat the destruction of the request stream as a cancellation of the request; Fixed tests; * Emit `progress` event in the next tick; * Initial refactoring; * Refactored Mocha tests to use ESM; * Refactored Karma tests to use rollup preprocessor & ESM; Replaced grunt with gulp; Improved dev scripts; Added Babel for rollup build; * Added default commonjs package export for Node build; Added automatic contributors list generator for package.json; Co-authored-by: Jay <jasonsaayman@gmail.com>
This commit is contained in:
+18
-18
@@ -1,8 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('../utils');
|
||||
var AxiosError = require('../core/AxiosError');
|
||||
var envFormData = require('../env/classes/FormData');
|
||||
import utils from '../utils.js';
|
||||
import AxiosError from '../core/AxiosError.js';
|
||||
import envFormData from '../env/classes/FormData.js';
|
||||
|
||||
/**
|
||||
* Determines if the given thing is a array or js object.
|
||||
@@ -55,7 +55,7 @@ function isFlatArray(arr) {
|
||||
return utils.isArray(arr) && !arr.some(isVisitable);
|
||||
}
|
||||
|
||||
var predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
|
||||
const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
|
||||
return /^is[A-Z]/.test(prop);
|
||||
});
|
||||
|
||||
@@ -111,13 +111,13 @@ function toFormData(obj, formData, options) {
|
||||
return !utils.isUndefined(source[option]);
|
||||
});
|
||||
|
||||
var metaTokens = options.metaTokens;
|
||||
const metaTokens = options.metaTokens;
|
||||
// eslint-disable-next-line no-use-before-define
|
||||
var visitor = options.visitor || defaultVisitor;
|
||||
var dots = options.dots;
|
||||
var indexes = options.indexes;
|
||||
var _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
|
||||
var useBlob = _Blob && isSpecCompliant(formData);
|
||||
const visitor = options.visitor || defaultVisitor;
|
||||
const dots = options.dots;
|
||||
const indexes = options.indexes;
|
||||
const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
|
||||
const useBlob = _Blob && isSpecCompliant(formData);
|
||||
|
||||
if (!utils.isFunction(visitor)) {
|
||||
throw new TypeError('visitor must be a function');
|
||||
@@ -152,7 +152,7 @@ function toFormData(obj, formData, options) {
|
||||
* @returns {boolean} return true to visit the each prop of the value recursively
|
||||
*/
|
||||
function defaultVisitor(value, key, path) {
|
||||
var arr = value;
|
||||
let arr = value;
|
||||
|
||||
if (value && !path && typeof value === 'object') {
|
||||
if (utils.endsWith(key, '{}')) {
|
||||
@@ -187,12 +187,12 @@ function toFormData(obj, formData, options) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var stack = [];
|
||||
const stack = [];
|
||||
|
||||
var exposedHelpers = Object.assign(predicates, {
|
||||
defaultVisitor: defaultVisitor,
|
||||
convertValue: convertValue,
|
||||
isVisitable: isVisitable
|
||||
const exposedHelpers = Object.assign(predicates, {
|
||||
defaultVisitor,
|
||||
convertValue,
|
||||
isVisitable
|
||||
});
|
||||
|
||||
function build(value, path) {
|
||||
@@ -205,7 +205,7 @@ function toFormData(obj, formData, options) {
|
||||
stack.push(value);
|
||||
|
||||
utils.forEach(value, function each(el, key) {
|
||||
var result = !utils.isUndefined(el) && visitor.call(
|
||||
const result = !utils.isUndefined(el) && visitor.call(
|
||||
formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers
|
||||
);
|
||||
|
||||
@@ -226,4 +226,4 @@ function toFormData(obj, formData, options) {
|
||||
return formData;
|
||||
}
|
||||
|
||||
module.exports = toFormData;
|
||||
export default toFormData;
|
||||
|
||||
Reference in New Issue
Block a user