QueryValidator
Class: QueryValidator
Defined in: packages/ql/src/query.ts:1438
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:1463
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
protectedbuilder:ExpressionBuilder
Defined in: packages/ql/src/query.ts:1454
Builder
lexer
protectedlexer:WebdaQLLexer
Defined in: packages/ql/src/query.ts:1442
Lexer
query
protectedquery:Query
Defined in: packages/ql/src/query.ts:1450
Query
sql
protectedsql:string
Defined in: packages/ql/src/query.ts:1464
the query string to parse
tree
protectedtree:WebdaqlContext
Defined in: packages/ql/src/query.ts:1446
Tree
Methods
displayTree()
displayTree(
tree?):string
Defined in: packages/ql/src/query.ts:1607
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:1590
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:1570
Get the filter expression (without LIMIT / OFFSET / ORDER BY)
Returns
the filter expression
getLimit()
getLimit():
number
Defined in: packages/ql/src/query.ts:1562
Get parsed LIMIT value, defaulting to 1000
Returns
number
the limit value
getOffset()
getOffset():
string
Defined in: packages/ql/src/query.ts:1479
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:1578
Retrieve the full parsed query including filter, limit, offset, and orderBy
Returns
the full query object
hasCondition()
hasCondition():
boolean
Defined in: packages/ql/src/query.ts:1489
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
isDynamic()
isDynamic():
boolean
Defined in: packages/ql/src/query.ts:1598
Check whether this query's filter contains any dynamic values
Returns
boolean
true if any child comparison holds a DynamicValue
merge()
merge(
query?,type?):this
Defined in: packages/ql/src/query.ts:1518
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" = "AND"
logical operator to combine filters ("AND" or "OR")
Returns
this
this for chaining
toString()
toString():
string
Defined in: packages/ql/src/query.ts:1504
Reconstruct the query string from the parsed AST
Includes filter, ORDER BY, LIMIT, and OFFSET clauses.
Returns
string
the reconstructed query string