@tanstack/db-ivm
Version:
Incremental View Maintenance for TanStack DB based on Differential Dataflow
37 lines (36 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const graph = require("../graph.cjs");
const d2 = require("../d2.cjs");
const reduce = require("./reduce.cjs");
class CountOperator extends reduce.ReduceOperator {
constructor(id, inputA, output) {
const countInner = (vals) => {
let totalCount = 0;
for (const [_, diff] of vals) {
totalCount += diff;
}
return [[totalCount, 1]];
};
super(id, inputA, output, countInner);
}
}
function count() {
return (stream) => {
const output = new d2.StreamBuilder(
stream.graph,
new graph.DifferenceStreamWriter()
);
const operator = new CountOperator(
stream.graph.getNextOperatorId(),
stream.connectReader(),
output.writer
);
stream.graph.addOperator(operator);
stream.graph.addStream(output.connectReader());
return output;
};
}
exports.CountOperator = CountOperator;
exports.count = count;
//# sourceMappingURL=count.cjs.map