@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
30 lines (29 loc) • 916 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.readableMap = void 0;
const stream_1 = require("stream");
const js_lib_1 = require("@naturalcycles/js-lib");
function readableMap(readable, mapper) {
let i = -1;
// todo: check if we need to handle errors somehow specifically
return readable.pipe(new stream_1.Transform({
objectMode: true,
async transform(chunk, _enc, cb) {
try {
const r = await mapper(chunk, ++i);
if (r === js_lib_1.SKIP) {
cb();
}
else {
// _assert(r !== END, `readableMap END not supported`)
cb(null, r);
}
}
catch (err) {
console.error(err);
cb(err);
}
},
}));
}
exports.readableMap = readableMap;