@pujansrt/data-genie
Version:
High performant ETL engine written in TypeScript
30 lines (29 loc) • 832 B
JavaScript
;
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;