UNPKG

@electric-sql/d2mini

Version:

D2Mini is a minimal implementation of Differential Dataflow for performing in-memory incremental view maintenance.

30 lines 978 B
import { DifferenceStreamWriter } from '../graph.js'; import { StreamBuilder } from '../d2.js'; import { LinearUnaryOperator } from '../graph.js'; /** * Operator that filters elements from the input stream */ export class FilterOperator extends LinearUnaryOperator { #f; constructor(id, inputA, output, f) { super(id, inputA, output); this.#f = f; } inner(collection) { return collection.filter(this.#f); } } /** * Filters elements from the input stream * @param f - The predicate to filter elements */ export function filter(f) { return (stream) => { const output = new StreamBuilder(stream.graph, new DifferenceStreamWriter()); const operator = new FilterOperator(stream.graph.getNextOperatorId(), stream.connectReader(), output.writer, f); stream.graph.addOperator(operator); stream.graph.addStream(output.connectReader()); return output; }; } //# sourceMappingURL=filter.js.map