2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-11 18:02:32 +03:00

fix(headers): allow iterable objects to be a data source for the set method; (#6873)

This commit is contained in:
Dmitriy Mozgovoy
2025-04-14 21:55:27 +03:00
committed by GitHub
parent 47a611f084
commit 1b1f9ccdc1
3 changed files with 27 additions and 10 deletions
+12 -6
View File
@@ -6,6 +6,7 @@ import bind from './helpers/bind.js';
const {toString} = Object.prototype;
const {getPrototypeOf} = Object;
const {iterator, toStringTag} = Symbol;
const kindOf = (cache => thing => {
const str = toString.call(thing);
@@ -132,7 +133,7 @@ const isPlainObject = (val) => {
}
const prototype = getPrototypeOf(val);
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);
}
/**
@@ -483,13 +484,13 @@ const isTypedArray = (TypedArray => {
* @returns {void}
*/
const forEachEntry = (obj, fn) => {
const generator = obj && obj[Symbol.iterator];
const generator = obj && obj[iterator];
const iterator = generator.call(obj);
const _iterator = generator.call(obj);
let result;
while ((result = iterator.next()) && !result.done) {
while ((result = _iterator.next()) && !result.done) {
const pair = result.value;
fn.call(obj, pair[0], pair[1]);
}
@@ -610,7 +611,7 @@ const toFiniteNumber = (value, defaultValue) => {
* @returns {boolean}
*/
function isSpecCompliantForm(thing) {
return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
}
const toJSONObject = (obj) => {
@@ -679,6 +680,10 @@ const asap = typeof queueMicrotask !== 'undefined' ?
// *********************
const isIterable = (thing) => thing != null && isFunction(thing[iterator]);
export default {
isArray,
isArrayBuffer,
@@ -734,5 +739,6 @@ export default {
isAsyncFn,
isThenable,
setImmediate: _setImmediate,
asap
asap,
isIterable
};