@electric-sql/d2ts
Version:
D2TS is a TypeScript implementation of Differential Dataflow.
25 lines (24 loc) • 1.11 kB
TypeScript
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>>;