UNPKG

1.17 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.transformFilterSync = exports.transformFilter = void 0;
4const stream_1 = require("stream");
5const transformMap_1 = require("./transformMap");
6/**
7 * Just a convenience wrapper around `transformMap` that has built-in predicate filtering support.
8 */
9function transformFilter(predicate, opt = {}) {
10 return (0, transformMap_1.transformMap)(v => v, {
11 predicate,
12 ...opt,
13 });
14}
15exports.transformFilter = transformFilter;
16/**
17 * Sync version of `transformFilter`
18 */
19function transformFilterSync(predicate, opt = {}) {
20 let index = 0;
21 return new stream_1.Transform({
22 objectMode: true,
23 ...opt,
24 transform(chunk, _, cb) {
25 try {
26 if (predicate(chunk, index++)) {
27 cb(null, chunk); // pass through
28 }
29 else {
30 cb(); // signal that we've finished processing, but emit no output here
31 }
32 }
33 catch (err) {
34 cb(err);
35 }
36 },
37 });
38}
39exports.transformFilterSync = transformFilterSync;