@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
30 lines • 956 B
JavaScript
;
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