UNPKG

@electric-sql/d2ts

Version:

D2TS is a TypeScript implementation of Differential Dataflow.

25 lines (24 loc) 1.11 kB
import { IStreamBuilder, KeyValue } from '../../types.js'; import { DifferenceStreamReader, DifferenceStreamWriter, UnaryOperator } from '../../graph.js'; import { Antichain } from '../../order.js'; import { SQLiteDb } from '../database.js'; /** * SQLite version of the ReduceOperator */ export declare class ReduceOperatorSQLite<K, V1, V2> extends UnaryOperator<[ K, V1 | V2 ]> { #private; constructor(id: number, inputA: DifferenceStreamReader<[K, V1]>, output: DifferenceStreamWriter<[K, V2]>, f: (values: [V1, number][]) => [V2, number][], initialFrontier: Antichain, db: SQLiteDb); run(): void; destroy(): void; } /** * Reduces the elements in the stream by key * Persists state to SQLite * * @param f - The reduction function * @param db - Optional SQLite database (can be injected via context) */ export declare function reduce<K extends T extends KeyValue<infer K, infer _V> ? K : never, V1 extends T extends KeyValue<K, infer V> ? V : never, R, T>(f: (values: [V1, number][]) => [R, number][], db?: SQLiteDb): (stream: IStreamBuilder<T>) => IStreamBuilder<KeyValue<K, R>>;