UNPKG

@pujansrt/data-genie

Version:

High performant ETL engine written in TypeScript

30 lines (29 loc) 832 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FilteringReader = void 0; const transformers_1 = require("../transformers/transformers"); class FilteringReader extends transformers_1.DataTransformer { constructor(reader) { super(reader); this.rules = []; } add(rule) { this.rules.push(rule); return this; } async *read() { for await (const record of this.reader.read()) { let passedAllRules = true; for (const rule of this.rules) { if (!rule(record)) { passedAllRules = false; break; } } if (passedAllRules) { yield record; } } } } exports.FilteringReader = FilteringReader;