UNPKG

@equantic/linq

Version:
22 lines (21 loc) 1.7 kB
import QueryString from 'qs'; import { FilteringCollection } from './FilteringCollection.js'; import type { FieldPath } from '../base.js'; import type { IFiltering, IFilteringInfo } from './base.js'; export interface IFilteringParserOptions<TData extends object = any, TDestination extends object = TData> { consideringNullValues?: boolean; consideringEmptyValues?: boolean; parseProperty: (prop: FieldPath<TData>) => IFilteringInfo<TDestination>; } export interface IFilteringConverterOptions<TSource extends object = any, TDestination extends object = TSource> { parseProperty: (prop: FieldPath<TSource>) => FieldPath<TDestination>; } export declare class FilteringParser { static parseQueryString<TData extends object = any>(queryFilter?: string | string[] | QueryString.ParsedQs | QueryString.ParsedQs[]): FilteringCollection<TData>; static parseObject<TData extends object = any, TDestination extends object = TData>(data: TData, options?: IFilteringParserOptions<TData, TDestination>): FilteringCollection<TDestination>; static parse<TSource extends object, TDestination extends object>(source: IFiltering<TSource>, options?: IFilteringConverterOptions<TSource, TDestination>): IFiltering<TDestination>; static parseCollection<TSource extends object, TDestination extends object>(source: FilteringCollection<TSource>, options?: IFilteringConverterOptions<TSource, TDestination>): FilteringCollection<TDestination>; static parseExpression<TData extends object = any>(exp: string, result: IFiltering<TData>[]): void; static toQueryString<TSource extends object>(filtering: IFiltering<TSource>[]): string | undefined; private static validateValue; }