UNPKG

@naturalcycles/nodejs-lib

Version:
35 lines (34 loc) 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.readableFromArray = void 0; const stream_1 = require("stream"); const js_lib_1 = require("@naturalcycles/js-lib"); /** * 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) { let i = -1; return new stream_1.Readable({ objectMode: true, ...opt, async read() { i++; if (i < items.length) { try { this.push(await mapper(items[i], i)); } catch (err) { console.error(err); this.destroy(err); } } else { this.push(null); // end } }, }); } exports.readableFromArray = readableFromArray;