UNPKG

json-api-nestjs

Version:
44 lines 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AsyncIterate = void 0; const constants_1 = require("../constants"); class GeneralAsyncIterator { iterateObject; callback; counter = 0; maxLimit; constructor(iterateObject, callback) { this.iterateObject = iterateObject; this.callback = callback; if (!Array.isArray(iterateObject)) { throw new Error('Expected iterateObject to be an array'); } this.maxLimit = iterateObject.length; } async next() { const items = !Array.isArray(this.iterateObject[this.counter]) ? [this.iterateObject[this.counter]] : this.iterateObject[this.counter]; this.counter++; if (this.counter <= this.maxLimit) { return this.callback(...items).then((r) => ({ done: false, value: r, })); } else { return Promise.resolve({ done: true, value: {} }); } } } exports.AsyncIterate = { provide: constants_1.ASYNC_ITERATOR_FACTORY, useFactory: () => ({ createIterator(iterateObject, callback) { return { [Symbol.asyncIterator]: () => new GeneralAsyncIterator(iterateObject, callback), }; }, }), }; //# sourceMappingURL=async-iterator.js.map