@odata/parser
Version:
OData(V4) Parser
100 lines (99 loc) • 2.37 kB
TypeScript
import { Edm } from '@odata/metadata';
import { ODataVersion } from './types';
export declare enum ExprOperator {
eq = "eq",
ne = "ne",
gt = "gt",
lt = "lt",
ge = "ge",
le = "le"
}
type FieldExpr = {
op: ExprOperator;
value: any;
};
type FieldExprMappings = {
[key: string]: FieldExpr[];
};
/**
* @private
* @internal
*/
declare class ODataFieldExpr {
constructor(filter: ODataFilter, fieldName: string, mapping: FieldExprMappings);
private _filter;
private _fieldName;
private _exprMappings;
private _getFieldExprs;
private _addExpr;
/**
* equal
* @param value
*/
eq(value: number | string | Edm.PrimitiveTypeValue): ODataFilter;
/**
* not equal
* @param value
*/
ne(value: number | string | Edm.PrimitiveTypeValue): ODataFilter;
eqString(value: string): ODataFilter;
neString(value: string): ODataFilter;
/**
* greater or equal
* @param value
*/
ge(value: number | string | Edm.PrimitiveTypeValue): ODataFilter;
/**
* greater than
* @param value
*/
gt(value: number | string | Edm.PrimitiveTypeValue): ODataFilter;
/**
* less or equal
* @param value
*/
le(value: number | string | Edm.PrimitiveTypeValue): ODataFilter;
/**
* less than
* @param value
*/
lt(value: number | string | Edm.PrimitiveTypeValue): ODataFilter;
/**
* match any value in an array
*
* @param values
*/
in(values?: Array<number | string | Edm.PrimitiveTypeValue>): ODataFilter;
/**
* filter by value range
*
* @param low
* @param max
* @param includeBoundary
*/
between(low: any, max: any, includeBoundary?: boolean): ODataFilter;
}
/**
* OData filter builder
*/
export declare class ODataFilter<T = any> {
static New<E>(obj?: Partial<E>): ODataFilter;
constructor(obj?: T);
private _fieldExprMappings;
/**
* getExprMapping
*
* @internal
* @private
*/
private getExprMapping;
/**
* @param name filed name
*/
field(name: keyof T): ODataFieldExpr;
toString(version?: ODataVersion): string;
private _buildExprLit;
protected _buildFieldExprString(field: string, version?: ODataVersion): string;
build(version?: ODataVersion): string;
}
export {};