UNPKG

@naturalcycles/nodejs-lib

Version:
30 lines 956 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const js_lib_1 = require("@naturalcycles/js-lib"); const stream_1 = require("stream"); /** * Create Readable from Array. * Supports a `mapper` function (async) that you can use to e.g create a timer-emitting-readable. * * For simple cases use Readable.from(...) (Node.js 12+) */ function readableFromArray(items, mapper = js_lib_1._passthroughMapper, opt) { const readable = new stream_1.Readable({ objectMode: true, ...opt, read() { }, }); void js_lib_1.pMap(items, async (item, index) => { readable.push(await mapper(item, index)); }, { concurrency: 1 }) .then(() => { readable.push(null); // done }) .catch(err => { console.error(err); readable.push(err); }); return readable; } exports.readableFromArray = readableFromArray; //# sourceMappingURL=readableFromArray.js.map