ts-flex-query
Version:
Flexible and type-safe data queries
13 lines (12 loc) • 1.04 kB
TypeScript
import { Expression } from '../../core/expression';
import { PipeOperator } from '../../core/pipe-operator';
import { ObjectValueSelector, ObjectValueSelectorType } from '../../helpers/object-value-selector';
import { Error } from '../../types/utils';
export declare class FlatMapOperator implements PipeOperator {
readonly mapper: (input: Expression<any>) => Expression;
static readonly inputIdentifier: unique symbol;
constructor(mapper: (input: Expression<any>) => Expression);
instantiate(input: Expression): Expression<any>;
}
export declare function flatMap<TIn extends unknown[], TOut extends unknown[]>(selector: PipeOperator<TIn[number], TOut | undefined>): PipeOperator<TIn, TOut>;
export declare function flatMap<TIn extends unknown[], TSelector extends ObjectValueSelector<TIn[number]>>(selector: ObjectValueSelectorType<TIn[number], TSelector> extends unknown[] | undefined ? TSelector : Error<'Selected value must be an array.'>): PipeOperator<TIn, NonNullable<ObjectValueSelectorType<TIn[number], TSelector>>>;