@serenity-is/corelib / CriteriaBuilder
Class: CriteriaBuilder
Defined in: src/base/criteria.ts:15
Fluent builder for Serenity criteria expressions with completion support.
Remarks
Extends Array so an instance itself acts as a field-reference token (e.g. ["Amount"]).
Create instances via Criteria("FieldName") rather than new CriteriaBuilder().
Each method returns a Serenity criteria tuple/array that can be combined with
Criteria.and, Criteria.or, Criteria.join, or the
parseCriteria parser. bw stands for "between" (inclusive).
Examples
Criteria("Age").ge(18); // [["Age"], ">=", 18]
Criteria("Status").in([1, 2, 3]); // [["Status"], "in", [[1, 2, 3]]]
Extends
Array
Indexable
[n: number]: any
Constructors
Constructor
new CriteriaBuilder(
arrayLength?):CriteriaBuilder
Defined in: C:/Users/volka/AppData/Roaming/npm/node_modules/typedoc/node_modules/typescript/lib/lib.es5.d.ts:1514
Parameters
arrayLength?
number
Returns
CriteriaBuilder
Inherited from
Array.constructor
Methods
bw()
bw(
fromInclusive,toInclusive):any[]
Defined in: src/base/criteria.ts:25
Creates a BETWEEN (inclusive) criteria: field >= from AND field <= to.
Parameters
fromInclusive
any
Lower bound (inclusive).
toInclusive
any
Upper bound (inclusive).
Returns
any[]
Composite criteria [[field, ">=", from], "and", [field, "<=", to]].
Example
Criteria("Amount").bw(10, 20);
contains()
contains(
value):any[]
Defined in: src/base/criteria.ts:42
Creates a LIKE '%value%' (contains) criteria.
The value is treated as literal text: LIKE special characters are
escaped (see escapeLikeWildcards) and a 4-element array with
ESCAPE '!' is produced only when escaping was necessary, otherwise
a plain 3-element array, so older servers keep working.
Parameters
value
string
Substring to search for. Wrapped with % on both sides.
Returns
any[]
Criteria [field, "like", "%value%"] or [field, "like", "%value%", "!"].
Example
Criteria("Name").contains("ser"); // [["Name"], "like", "%ser%"]
endsWith()
endsWith(
value):any[]
Defined in: src/base/criteria.ts:59
Creates a LIKE '%value' (ends-with) criteria.
The value is treated as literal text: LIKE special characters are
escaped (see escapeLikeWildcards) and a 4-element array with
ESCAPE '!' is produced only when escaping was necessary, otherwise
a plain 3-element array, so older servers keep working.
Parameters
value
string
Suffix to match. Prefixed with %.
Returns
any[]
Criteria [field, "like", "%value"] or [field, "like", "%value", "!"].
Example
Criteria("Email").endsWith("@example.com");
eq()
eq(
value):any[]
Defined in: src/base/criteria.ts:71
Creates an equality (=) criteria.
Parameters
value
any
Value to compare for equality.
Returns
any[]
Criteria [field, "=", value].
Example
Criteria("IsActive").eq(true);
ge()
ge(
value):any[]
Defined in: src/base/criteria.ts:91
Creates a greater-than-or-equal (>=) criteria.
Parameters
value
any
Lower inclusive bound.
Returns
any[]
Criteria [field, ">=", value].
gt()
gt(
value):any[]
Defined in: src/base/criteria.ts:81
Creates a greater-than (>) criteria.
Parameters
value
any
Lower exclusive bound.
Returns
any[]
Criteria [field, ">", value].
in()
in(
values):any[]
Defined in: src/base/criteria.ts:103
Creates an IN criteria.
Parameters
values
any[]
Array of allowed values. Wrapped as [values] per Serenity wire format.
Returns
any[]
Criteria [field, "in", [values]].
Example
Criteria("Status").in([1, 2]); // [["Status"], "in", [[1, 2]]]
isNotNull()
isNotNull():
any[]
Defined in: src/base/criteria.ts:121
Creates an IS NOT NULL criteria.
Returns
any[]
Criteria ["is not null", field].
isNull()
isNull():
any[]
Defined in: src/base/criteria.ts:112
Creates an IS NULL criteria.
Returns
any[]
Criteria ["is null", field].
le()
le(
value):any[]
Defined in: src/base/criteria.ts:131
Creates a less-than-or-equal (<=) criteria.
Parameters
value
any
Upper inclusive bound.
Returns
any[]
Criteria [field, "<=", value].
like()
like(
value):any[]
Defined in: src/base/criteria.ts:163
Creates a LIKE criteria with the exact pattern provided.
Parameters
value
any
SQL LIKE pattern (use % / _ wildcards as needed).
Returns
any[]
Criteria [field, "like", value].
Example
Criteria("Name").like("A%");
likeEscaped()
likeEscaped(
mask):any[]
Defined in: src/base/criteria.ts:182
Creates a LIKE ... ESCAPE '!' criteria with a pre-escaped mask.
The mask must already be escaped (see escapeLikeWildcards); it is used as is. A 4-element array is produced only when the mask contains the escape character, otherwise a plain 3-element array, so older servers keep working. For literal values prefer CriteriaBuilder.contains, CriteriaBuilder.startsWith or CriteriaBuilder.endsWith.
Parameters
mask
string
LIKE mask, already escaped for !.
Returns
any[]
Criteria [field, "like", mask] or [field, "like", mask, "!"].
Example
Criteria("Name").likeEscaped("%a!%b%"); // [["Name"], "like", "%a!%b%", "!"]
lt()
lt(
value):any[]
Defined in: src/base/criteria.ts:141
Creates a less-than (<) criteria.
Parameters
value
any
Upper exclusive bound.
Returns
any[]
Criteria [field, "<", value].
ne()
ne(
value):any[]
Defined in: src/base/criteria.ts:151
Creates a not-equal (!=) criteria.
Parameters
value
any
Value that the field must not equal.
Returns
any[]
Criteria [field, "!=", value].
notIn()
notIn(
values):any[]
Defined in: src/base/criteria.ts:211
Creates a NOT IN criteria.
Parameters
values
any[]
Array of disallowed values. Wrapped as [values].
Returns
any[]
Criteria [field, "not in", [values]].
notLike()
notLike(
value):any[]
Defined in: src/base/criteria.ts:221
Creates a NOT LIKE criteria.
Parameters
value
any
SQL LIKE pattern that the field must not match.
Returns
any[]
Criteria [field, "not like", value].
notLikeEscaped()
notLikeEscaped(
mask):any[]
Defined in: src/base/criteria.ts:237
Creates a NOT LIKE ... ESCAPE '!' criteria with a pre-escaped mask.
The mask must already be escaped (see escapeLikeWildcards); it is used as is. A 4-element array is produced only when the mask contains the escape character, otherwise a plain 3-element array.
Parameters
mask
string
LIKE mask, already escaped for !.
Returns
any[]
Criteria [field, "not like", mask] or [field, "not like", mask, "!"].
Example
Criteria("Name").notLikeEscaped("%a!%b%"); // [["Name"], "not like", "%a!%b%", "!"]
startsWith()
startsWith(
value):any[]
Defined in: src/base/criteria.ts:201
Creates a LIKE 'value%' (starts-with) criteria.
The value is treated as literal text: LIKE special characters are
escaped (see escapeLikeWildcards) and a 4-element array with
ESCAPE '!' is produced only when escaping was necessary, otherwise
a plain 3-element array, so older servers keep working.
Parameters
value
string
Prefix to match. Suffixed with %.
Returns
any[]
Criteria [field, "like", "value%"] or [field, "like", "value%", "!"].
Example
Criteria("Name").startsWith("Jo"); // [["Name"], "like", "Jo%"]