ts-flex-query
Version:
Flexible and type-safe data queries
14 lines (13 loc) • 1.2 kB
TypeScript
import { Expression } from '../../core/expression';
import { PipeOperator } from '../../core/pipe-operator';
import { GroupResultType } from '../../expressions/group';
import { ObjectValueSelector, ObjectValueSelectorType } from '../../helpers/object-value-selector';
export declare class GroupOperator implements PipeOperator {
readonly groupValue: (element: Expression<any>) => Expression;
static readonly elementsField = "elements";
static readonly groupValueField = "key";
constructor(groupValue: (element: Expression<any>) => Expression);
instantiate(input: Expression): Expression<any>;
}
export declare function groupBy<TIn extends unknown[], TGroupValue>(groupValueSelector: PipeOperator<TIn[number], TGroupValue>): PipeOperator<TIn, GroupResultType<TIn, TGroupValue, (typeof GroupOperator)['elementsField'], (typeof GroupOperator)['groupValueField']>>;
export declare function groupBy<TIn extends unknown[], TSelector extends ObjectValueSelector<TIn[number]>>(groupValueSelector: TSelector): PipeOperator<TIn, GroupResultType<TIn, ObjectValueSelectorType<TIn[number], TSelector>, (typeof GroupOperator)['elementsField'], (typeof GroupOperator)['groupValueField']>>;