UNPKG

@tanstack/db-ivm

Version:

Incremental View Maintenance for TanStack DB based on Differential Dataflow

41 lines (40 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const graph = require("../graph.cjs"); const d2 = require("../d2.cjs"); const multiset = require("../multiset.cjs"); class ConsolidateOperator extends graph.UnaryOperator { run() { const messages = this.inputMessages(); if (messages.length === 0) { return; } const combined = new multiset.MultiSet(); for (const message of messages) { combined.extend(message); } const consolidated = combined.consolidate(); if (consolidated.getInner().length > 0) { this.output.sendData(consolidated); } } } function consolidate() { return (stream) => { const output = new d2.StreamBuilder( stream.graph, new graph.DifferenceStreamWriter() ); const operator = new ConsolidateOperator( stream.graph.getNextOperatorId(), stream.connectReader(), output.writer ); stream.graph.addOperator(operator); stream.graph.addStream(output.connectReader()); return output; }; } exports.ConsolidateOperator = ConsolidateOperator; exports.consolidate = consolidate; //# sourceMappingURL=consolidate.cjs.map