PartialValidator
Class: PartialValidator
Defined in: packages/ql/src/query.ts:1153
A query validator that supports partial object matching
In partial mode, comparisons against undefined attributes evaluate to true
(the missing field is ignored). This is useful for PATCH operations where only
a subset of fields is provided.
Example
const v = new PartialValidator("name = 'John' AND age > 18");
v.eval({ name: "John" }); // true (age is undefined, skipped)
v.wasPartialMatch(); // true
v.eval({ name: "John" }, false); // false (strict mode, age required)
Extends
Constructors
Constructor
new PartialValidator(
query,builder?):PartialValidator
Defined in: packages/ql/src/query.ts:1160
Parameters
query
string
WebdaQL query string
builder?
PartialExpressionBuilder = ...
partial expression builder (override for customization)
Returns
PartialValidator
Overrides
Properties
builder
builder:
PartialExpressionBuilder
Defined in: packages/ql/src/query.ts:1154
Overrides
lexer
protectedlexer:WebdaQLLexer
Defined in: packages/ql/src/query.ts:912
Inherited from
query
protectedquery:Query
Defined in: packages/ql/src/query.ts:914
Inherited from
sql
protectedsql:string
Defined in: packages/ql/src/query.ts:925
the query string to parse
Inherited from
tree
protectedtree:WebdaqlContext
Defined in: packages/ql/src/query.ts:913
Inherited from
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
Inherited from
eval()
eval(
target,partial?):boolean
Defined in: packages/ql/src/query.ts:1170
Eval the query
Parameters
target
any
the object to evaluate
partial?
boolean = true
whether to use partial matching
Returns
boolean
true if the target matches
Overrides
getExpression()
getExpression():
Expression
Defined in: packages/ql/src/query.ts:1032
Get the filter expression (without LIMIT / OFFSET / ORDER BY)
Returns
the filter expression
Inherited from
getLimit()
getLimit():
number
Defined in: packages/ql/src/query.ts:1024
Get parsed LIMIT value, defaulting to 1000
Returns
number
the limit value
Inherited from
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
Inherited from
getQuery()
getQuery():
Query
Defined in: packages/ql/src/query.ts:1040
Retrieve the full parsed query including filter, limit, offset, and orderBy
Returns
the full query object
Inherited from
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
Inherited from
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
Inherited from
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
Inherited from
wasPartialMatch()
wasPartialMatch():
boolean
Defined in: packages/ql/src/query.ts:1180
Return if the result ignored some fields
Returns
boolean
true if some fields were skipped