docorm
Version:
Persistence layer with ORM features for JSON documents
93 lines • 4.61 kB
TypeScript
export type QueryConstant = string | number | boolean | null;
export type QueryFullTextSearchContext = 'default';
export type QueryPath = string;
export interface QueryCoalesceExpression {
coalesce: (QueryConstantExpression | QueryPathExpression)[];
}
export interface QueryConstantExpression {
constant: QueryConstant;
}
export interface QueryConstantListExpression {
constant: QueryConstant[];
}
export interface QueryFullTextExpression {
text: QueryFullTextSearchContext;
}
export interface QueryFunctionExpression {
function: string;
parameters: (QueryConstantExpression | QueryPathExpression)[];
}
export interface QueryOperatorExpression {
operator: string;
parameters: (QueryConstantExpression | QueryPathExpression)[];
}
export interface QueryPathExpression {
path: QueryPath;
sqlType?: string;
}
export interface QueryRangeExpression {
range: [QueryConstantExpression, QueryConstantExpression];
}
export type QueryExpression = QueryCoalesceExpression | QueryConstantExpression | QueryConstantListExpression | QueryFullTextExpression | QueryFunctionExpression | QueryOperatorExpression | QueryPathExpression | QueryRangeExpression;
export interface QueryBetweenClause {
operator: 'between';
l: QueryConstantExpression | QueryPathExpression;
r: QueryRangeExpression;
}
export interface QueryComparisonClause {
operator?: '=' | '<' | '>' | '<=' | '>=' | '!=' | 'like' | '~';
l: QueryConstantExpression | QueryPathExpression;
r: QueryConstantExpression | QueryPathExpression;
}
export interface QueryInClause {
operator: 'in';
l: QueryConstantExpression | QueryPathExpression;
r: QueryConstantListExpression;
}
export interface QueryFullTextSearchClause {
operator: 'contains';
l: QueryFullTextExpression;
r: QueryConstantExpression | QueryPathExpression;
}
export type QuerySimpleClause = QueryBetweenClause | QueryComparisonClause | QueryInClause | QueryFullTextSearchClause;
export interface QueryAndClause {
and: QueryClause[];
}
export interface QueryOrClause {
or: QueryClause[];
}
export interface QueryNotClause {
not: QueryClause;
}
export type QueryClause = QuerySimpleClause | QueryAndClause | QueryOrClause | QueryNotClause | true | false;
export type QueryOrderProperty = QueryPathExpression;
export type QueryOrderDirection = 'asc' | 'desc' | 'ASC' | 'DESC';
export type QueryOrderElement = QueryOrderProperty | [QueryOrderProperty, QueryOrderDirection];
export type QueryOrder = QueryOrderElement[];
export interface SqlExpression {
expression: string;
parameterValues: any[];
}
export interface SqlClause {
sqlClause: string | null;
parameterValues: any[];
}
export declare function queryExpressionIsCoalesce(expression: QueryExpression): expression is QueryCoalesceExpression;
export declare function queryExpressionIsConstant(expression: QueryExpression): expression is QueryConstantExpression;
export declare function queryExpressionIsConstantList(expression: QueryExpression): expression is QueryConstantListExpression;
export declare function queryExpressionIsFunction(expression: QueryExpression): expression is QueryFunctionExpression;
export declare function queryExpressionIsOperator(expression: QueryExpression): expression is QueryOperatorExpression;
export declare function queryExpressionIsFullText(expression: QueryExpression): expression is QueryFullTextExpression;
export declare function queryExpressionIsPath(expression: QueryExpression): expression is QueryPathExpression;
export declare function queryExpressionIsRange(expression: QueryExpression): expression is QueryRangeExpression;
export declare function queryClauseIsBetween(clause: QueryClause): clause is QueryBetweenClause;
export declare function queryClauseIsComparison(clause: QueryClause): clause is QueryComparisonClause;
export declare function queryClauseIsIn(clause: QueryClause): clause is QueryInClause;
export declare function queryClauseIsFullTextSearch(clause: QueryClause): clause is QueryFullTextSearchClause;
export declare function queryClauseIsSimple(clause: QueryClause): clause is QuerySimpleClause;
export declare function queryClauseIsAnd(clause: QueryClause): clause is QueryAndClause;
export declare function queryClauseIsOr(clause: QueryClause): clause is QueryOrClause;
export declare function queryClauseIsNot(clause: QueryClause): clause is QueryNotClause;
export declare function calculateExpression(context: any, expression: QueryExpression): any;
export declare function applyQuery(x: any, query: QueryClause): boolean;
//# sourceMappingURL=queries.d.ts.map