@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
41 lines • 1.23 kB
JavaScript
/**
* @module Collection
*/
import { isIterable } from "../../../../collection/implementations/_shared.js";
import {} from "../../../../utilities/_module-exports.js";
/**
* @internal
*/
export class AsyncZipIterable {
iterableA;
iterableB;
constructor(iterableA, iterableB) {
this.iterableA = iterableA;
this.iterableB = iterableB;
}
async *[Symbol.asyncIterator]() {
let iteratorA;
if (isIterable(this.iterableA)) {
iteratorA = this.iterableA[Symbol.iterator]();
}
else {
iteratorA = this.iterableA[Symbol.asyncIterator]();
}
let iteratorB;
if (isIterable(this.iterableB)) {
iteratorB = this.iterableB[Symbol.iterator]();
}
else {
iteratorB = this.iterableB[Symbol.asyncIterator]();
}
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
while (true) {
const itemA = await iteratorA.next(), itemB = await iteratorB.next();
if (itemA.done || itemB.done) {
break;
}
yield [itemA.value, itemB.value];
}
}
}
//# sourceMappingURL=async-zip-iterable.js.map