UNPKG

docorm

Version:

Persistence layer with ORM features for JSON documents

93 lines 4.61 kB
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