UNPKG

@tanstack/db

Version:

A reactive client store for building super fast apps on sync

41 lines (40 loc) 1.69 kB
import { ConditionOperand, Query } from './schema.js'; import { NamespacedAndKeyedStream } from '../types.js'; /** * Process the groupBy clause in a D2QL query */ export declare function processGroupBy(pipeline: NamespacedAndKeyedStream, query: Query, mainTableAlias: string): NamespacedAndKeyedStream; /** * Helper function to get an aggregate function based on the function name */ export declare function getAggregateFunction(functionName: string, columnRef: string | ConditionOperand, mainTableAlias: string): { preMap: (data: [string, Record<string, unknown>]) => number; reduce: (values: [number, number][]) => number; postMap?: ((result: number) => number) | undefined; } | { pipe: (stream: import('@electric-sql/d2mini').IStreamBuilder<[string, Record<string, unknown>]>) => import('@electric-sql/d2mini').IStreamBuilder<import('@electric-sql/d2mini').KeyValue<string, number>>; } | { preMap: (data: [string, Record<string, unknown>]) => { sum: number; count: number; }; reduce: (values: [{ sum: number; count: number; }, number][]) => { sum: number; count: number; }; postMap?: ((result: { sum: number; count: number; }) => number) | undefined; } | { preMap: (data: [string, Record<string, unknown>]) => number[]; reduce: (values: [number[], number][]) => number[]; postMap?: ((result: number[]) => number) | undefined; } | { preMap: (data: [string, Record<string, unknown>]) => Map<number, number>; reduce: (values: [Map<number, number>, number][]) => Map<number, number>; postMap?: ((result: Map<number, number>) => number) | undefined; };