1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.readableMap = void 0;
|
4 | const node_stream_1 = require("node:stream");
|
5 | const js_lib_1 = require("@naturalcycles/js-lib");
|
6 | function readableMap(readable, mapper) {
|
7 | let i = -1;
|
8 | const stream = readable
|
9 | .on('error', err => stream.emit('error', err))
|
10 | .pipe(new node_stream_1.Transform({
|
11 | objectMode: true,
|
12 | async transform(chunk, _enc, cb) {
|
13 | try {
|
14 | const r = await mapper(chunk, ++i);
|
15 | if (r === js_lib_1.SKIP) {
|
16 | cb();
|
17 | }
|
18 | else {
|
19 |
|
20 | cb(null, r);
|
21 | }
|
22 | }
|
23 | catch (err) {
|
24 | console.error(err);
|
25 | cb(err);
|
26 | }
|
27 | },
|
28 | }));
|
29 | return stream;
|
30 | }
|
31 | exports.readableMap = readableMap;
|