UNPKG

@naturalcycles/nodejs-lib

Version:
29 lines 893 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = require("stream"); /** * Similar to RxJS `tap` - allows to run a function for each stream item, without affecting the result. * Item is passed through to the output. * * Can also act as a counter, since `index` is passed to `fn` */ function transformTap(fn, opt = {}) { let index = 0; return new stream_1.Transform({ objectMode: true, ...opt, async transform(chunk, _encoding, cb) { // console.log('tap', chunk) try { await fn(chunk, index++); } catch (err) { console.error(err); // suppressed error } cb(null, chunk); // pass through the item }, }); } exports.transformTap = transformTap; //# sourceMappingURL=transformTap.js.map