ts-flex-query
Version:
Flexible and type-safe data queries
14 lines (13 loc) • 1.1 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 FilterOperator implements PipeOperator {
private readonly predicate;
constructor(predicate: (input: Expression<any>) => Expression<boolean>);
instantiate(input: Expression): Expression<any>;
}
export declare function filter<TIn extends unknown[]>(selector: NoInfer<PipeOperator<TIn[number], boolean>>): PipeOperator<TIn, TIn extends any ? TIn : TIn>;
export declare function filter<TIn extends unknown[], TSelector extends ObjectValueSelector<TIn[number]>>(selector: ObjectValueSelectorType<TIn[number], TSelector> extends boolean ? TSelector : Error<'Selected value must have boolean type.'>): PipeOperator<TIn, TIn>;
/** Filters the input collection for defined elements (not equal undefined or null). */
export declare function filterDefined<TIn extends unknown[]>(): PipeOperator<TIn, NonNullable<TIn[number]>[]>;