Skip to main content

QueryValidator

@webda/ql


Class: QueryValidator

Defined in: packages/ql/src/query.ts:911

Parses a WebdaQL query string and provides evaluation, merging, and serialization

This is the main entry point for working with WebdaQL queries. It handles:

  • Parsing query strings via ANTLR into an expression AST
  • Evaluating objects against the parsed filter
  • Merging multiple queries together
  • Serializing back to a query string

Example​

const validator = new QueryValidator("status = 'active' AND age > 18 LIMIT 50");
validator.eval({ status: "active", age: 25 }); // true
validator.getLimit(); // 50

Extended by​

Constructors​

Constructor​

new QueryValidator(sql, builder?): QueryValidator

Defined in: packages/ql/src/query.ts:924

Parse a WebdaQL query string

Parameters​

sql​

string

the query string to parse

builder?​

ExpressionBuilder = ...

expression builder to use (override for custom expression types)

Returns​

QueryValidator

Throws​

if the query string is malformed

Properties​

builder​

protected builder: ExpressionBuilder

Defined in: packages/ql/src/query.ts:915


lexer​

protected lexer: WebdaQLLexer

Defined in: packages/ql/src/query.ts:912


query​

protected query: Query

Defined in: packages/ql/src/query.ts:914


sql​

protected sql: string

Defined in: packages/ql/src/query.ts:925

the query string to parse


tree​

protected tree: WebdaqlContext

Defined in: packages/ql/src/query.ts:913

Methods​

displayTree()​

displayTree(tree?): string

Defined in: packages/ql/src/query.ts:1062

Display parse tree back as query

Parameters​

tree?​

ParseTree = ...

the parse tree to display

Returns​

string

the query string representation


eval()​

eval(target): boolean

Defined in: packages/ql/src/query.ts:1053

Verify if a target fit the expression

Parameters​

target​

any

the object to evaluate

Returns​

boolean

true if the target matches


getExpression()​

getExpression(): Expression

Defined in: packages/ql/src/query.ts:1032

Get the filter expression (without LIMIT / OFFSET / ORDER BY)

Returns​

Expression

the filter expression


getLimit()​

getLimit(): number

Defined in: packages/ql/src/query.ts:1024

Get parsed LIMIT value, defaulting to 1000

Returns​

number

the limit value


getOffset()​

getOffset(): string

Defined in: packages/ql/src/query.ts:940

Get parsed OFFSET continuation token, or empty string if none

Returns​

string

the offset token


getQuery()​

getQuery(): Query

Defined in: packages/ql/src/query.ts:1040

Retrieve the full parsed query including filter, limit, offset, and orderBy

Returns​

Query

the full query object


hasCondition()​

hasCondition(): boolean

Defined in: packages/ql/src/query.ts:950

Check whether the query has a non-empty filter condition

An empty AND expression (no children) is considered to have no condition.

Returns​

boolean

true if there is a filter condition


merge()​

merge(query, type?): this

Defined in: packages/ql/src/query.ts:989

Merge another query string into this query

Filter expressions are combined using the specified logical operator. LIMIT, OFFSET, and ORDER BY from the merged query override existing values.

Parameters​

query​

string

query string to merge in

type?​

"AND" | "OR"

logical operator to combine filters ("AND" or "OR")

Returns​

this

this for chaining


toString()​

toString(): string

Defined in: packages/ql/src/query.ts:965

Reconstruct the query string from the parsed AST

Includes filter, ORDER BY, LIMIT, and OFFSET clauses.

Returns​

string

the reconstructed query string