ts-odata-client
Version:
OData TypeScript Client
40 lines (39 loc) • 1.43 kB
TypeScript
import { TypedExpressionVisitor } from "./TypedExpressionVisitor";
import { FieldReference } from "./FieldReference";
import type { BooleanPredicateBuilder } from "./BooleanPredicateBuilder";
type Sort = {
field: string;
sort?: "desc";
};
export interface ODataV4QuerySegments {
select?: string[];
orderBy?: Sort[];
skip?: number;
top?: number;
filter?: string;
key?: unknown;
count?: boolean;
expand?: string[];
value?: boolean;
}
/**
* Converts a version-agnistic @type {Expression} into an object that holds information that adheres to ODataV4 speifications.
*/
export declare class ODataV4ExpressionVisitor extends TypedExpressionVisitor {
readonly oDataQuery: ODataV4QuerySegments;
selectVisitor(...fields: [FieldReference<unknown>, ...FieldReference<unknown>[]]): void;
orderByVisitor(...fields: FieldReference<unknown>[]): void;
orderByDescendingVisitor(...fields: FieldReference<unknown>[]): void;
skipVisitor(value: number): void;
topVisitor(value: number): void;
expandVisitor(...fields: FieldReference<unknown>[]): void;
expandAllVisitor(): void;
getWithCountVisitor(): void;
getByKeyVisitor(key: unknown): void;
valueVisitor(): void;
predicateVisitor(predicate: BooleanPredicateBuilder<unknown>): void;
private translatePredicateExpression;
private reduceTranslatedExpression;
private deriveLiteral;
}
export {};