UNPKG

iter-tools-es

Version:
39 lines (31 loc) 839 B
const { asyncIterableCurry } = require('../../internal/async-iterable.js'); const { __asyncZipAll } = require('../$zip-all/async-zip-all.js'); const { __sliceFromStart } = require('../$slice/slice.js'); const none = Symbol('none'); const zipAllConfig = { filler: none }; async function __asyncEqual(iterables, same = Object.is) { if (iterables.length <= 1) return true; for await (const stepValues of __asyncZipAll(iterables, zipAllConfig)) { const firstValue = stepValues[0]; for (const value of __sliceFromStart(stepValues, 1)) { if (!same(value, firstValue)) return false; } } return true; } exports.__asyncEqual = __asyncEqual; const asyncEqual = /*#__PURE__*/asyncIterableCurry(__asyncEqual, { minArgs: 0, maxArgs: 1, variadic: true, reduces: true }); exports.asyncEqual = asyncEqual;