UNPKG

ts-flex-query

Version:
8 lines (7 loc) 979 B
import { PipeOperator } from '../../core/pipe-operator'; import { MergeOutType } from './merge'; import { SchemaSpec, SchemaType, SpecificSchemaSpec, ValidSchemaSpec } from './query-schema'; import { RecordOutType, RecordSpec } from './record'; type GroupAndAggregateOutType<TIn, TSchema extends SchemaSpec, TAggregations extends RecordSpec<TIn[]> | undefined> = SchemaType<TIn, TSchema> extends Record<string, any> ? (undefined extends TAggregations ? SchemaType<TIn, TSchema> : MergeOutType<SchemaType<TIn, TSchema>, RecordOutType<TIn[], NonNullable<TAggregations>>>)[] : never; export declare function groupAndAggregate<TIn, TSchema extends SpecificSchemaSpec<TIn, null>, TAggregations extends RecordSpec<TIn[]> | undefined>(groupValueSchema: TSchema extends infer T ? T extends ValidSchemaSpec<TIn, TSchema> ? TSchema : ValidSchemaSpec<TIn, TSchema> : never, aggregates?: TAggregations): PipeOperator<TIn[], GroupAndAggregateOutType<TIn, TSchema, TAggregations>>; export {};