angular-odata
Version:
Client side OData typescript library for Angular
77 lines (76 loc) • 3.28 kB
TypeScript
import { Parser, ParserOptions } from '../../../types';
import { QueryCustomType } from '../builder';
import { Expression } from './base';
import { CountExpression, CountField } from './count';
import { Normalize, ODataFunctions, ODataOperators, Renderable } from './syntax';
export type FilterConnector = 'and' | 'or';
export type FilterExpressionBuilder<T> = {
t: Required<T>;
e: (connector?: FilterConnector) => FilterExpression<T>;
o: ODataOperators<T>;
f: ODataFunctions<T>;
};
export declare class FilterExpression<F> extends Expression<F> {
private _connector;
private _negated;
constructor({ children, connector, negated, }?: {
children?: Renderable[];
connector?: FilterConnector;
negated?: boolean;
});
get [Symbol.toStringTag](): string;
static factory<T>(opts: (builder: FilterExpressionBuilder<T>, current?: FilterExpression<T>) => FilterExpression<T>, current?: FilterExpression<T>): FilterExpression<T>;
toJson(): {
$type: string;
children: any[];
} & {
connector: FilterConnector;
negated: boolean;
};
static fromJson<T>(json: {
[name: string]: any;
}): FilterExpression<T>;
connector(): FilterConnector;
negated(): boolean;
render({ aliases, escape, prefix, parser, options, }?: {
aliases?: QueryCustomType[];
escape?: boolean;
prefix?: string;
parser?: Parser<any>;
options?: ParserOptions;
}): string;
clone(): FilterExpression<F>;
private _add;
or(exp: FilterExpression<F>): FilterExpression<F>;
and(exp: FilterExpression<F>): FilterExpression<F>;
not(exp: FilterExpression<F>): FilterExpression<F>;
eq(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
ne(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
gt(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
ge(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
lt(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
le(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
has(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
in(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
contains(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
startsWith(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
endsWith(left: any, right: any, normalize?: Normalize): FilterExpression<F>;
any<N>(left: N[], opts?: (e: {
e: (connector?: FilterConnector) => FilterExpression<N>;
t: N;
o: ODataOperators<N>;
f: ODataFunctions<N>;
}) => FilterExpression<N>, alias?: string): FilterExpression<F>;
all<N>(left: N[], opts?: (e: {
t: N;
e: (connector?: FilterConnector) => FilterExpression<N>;
o: ODataOperators<N>;
f: ODataFunctions<N>;
}) => FilterExpression<N>, alias?: string): FilterExpression<F>;
count<N>(left: N[], opts?: (e: {
t: N;
f: CountField<N>;
}) => CountExpression<N>): FilterExpression<F>;
isof(type: string): FilterExpression<F>;
isof(left: F, type: string): FilterExpression<F>;
}