UNPKG

1.2 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.transformMapSimple = void 0;
4const stream_1 = require("stream");
5const js_lib_1 = require("@naturalcycles/js-lib");
6/**
7 * Simplest version of `transformMap`.
8 * errorMode: IMMEDIATE
9 * Sync mode.
10 * Has 0 options to configure.
11 * If you need any configuration - use transformMap or transformMapSync.
12 * Sync (not async) version of transformMap.
13 * Supposedly faster, for cases when async is not needed.
14 */
15function transformMapSimple(mapper, opt = {}) {
16 let index = -1;
17 const { errorMode = js_lib_1.ErrorMode.THROW_IMMEDIATELY } = opt;
18 return new stream_1.Transform({
19 objectMode: true,
20 transform(chunk, _encoding, cb) {
21 try {
22 cb(null, mapper(chunk, ++index));
23 }
24 catch (err) {
25 console.error(err);
26 if (errorMode === js_lib_1.ErrorMode.SUPPRESS) {
27 cb(); // suppress the error
28 }
29 else {
30 // Emit the error
31 cb(err);
32 }
33 }
34 },
35 });
36}
37exports.transformMapSimple = transformMapSimple;