Class: Queryable<T>
Fluent query operators used when constructing compiled queries.
A compiled query can be created using the Verse.compile or Verse.compileUow methods.
Example
const query = db.compile((from, $name: string) =>
from.customers.where(c => c.name === $name).single());
const customer = await query("ACME Corp.");
Extended by
Type Parameters
Type Parameter | Description |
---|---|
T | The type of the entity being queried. |
Constructors
new Queryable()
new Queryable<
T
>():Queryable
<T
>
Returns
Queryable
<T
>
Methods
all()
all<
P
>(predicate
:P
):boolean
Determines whether all elements of a sequence satisfy a condition.
Type Parameters
Type Parameter |
---|
P extends (obj : T , ...args : []) => boolean | (...args : readonly unknown []) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
predicate | P | A function to test each element for a condition. |
Returns
boolean
true
if all elements in the sequence satisfy the condition, otherwise false
.
Defined in
packages/verse-core/src/query/queryable.ts:330
any()
any<
P
>(predicate
?:P
):boolean
Determines whether any element of a sequence satisfies a condition.
Type Parameters
Type Parameter |
---|
P extends (obj : T , ...args : []) => boolean | (...args : readonly unknown []) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
predicate ? | P | A function to test each element for a condition. |
Returns
boolean
true
if any elements in the sequence satisfy the condition, otherwise false
.
Defined in
packages/verse-core/src/query/queryable.ts:319
array()
array():
Queryable
<T
[]>
Aggregates the elements of the sequence into an array.
Returns
Queryable
<T
[]>
An array of the elements in the sequence.
Defined in
packages/verse-core/src/query/queryable.ts:436
avg()
avg(
expr
?:T
extendsJoinResult
<K
> ? (...args
: readonly [K
]) =>number
: (obj
:T
) =>number
):number
Returns the average value of the specified numerical expression for the sequence.
Parameters
Parameter | Type | Description |
---|---|---|
expr ? | T extends JoinResult <K > ? (...args : readonly [K ]) => number : (obj : T ) => number | The numerical expression to be evaluated. |
Returns
number
The average value of the specified numerical expression for the sequence.
Defined in
packages/verse-core/src/query/queryable.ts:428
count()
count():
number
Returns the number of elements in the sequence.
Returns
number
The number of elements in the sequence.
Defined in
packages/verse-core/src/query/queryable.ts:388
distinct()
distinct():
Queryable
<T
>
Removes duplicate elements from the sequence.
Returns
Queryable
<T
>
The queryable result of the distinct operation.
Defined in
packages/verse-core/src/query/queryable.ts:197
first()
first<
P
>(predicate
?:P
):T
Returns the first element of a sequence that satisfies a specified condition.
Type Parameters
Type Parameter |
---|
P extends (obj : T , ...args : []) => boolean | (...args : readonly unknown []) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
predicate ? | P | A function to test each element for a condition. |
Returns
T
The first element in the sequence that satisfies the condition.
Throws
Error, if no such element is found.
Defined in
packages/verse-core/src/query/queryable.ts:342
groupBy()
groupBy(key)
groupBy<
K
>(key
:K
):Queryable
<{items
:T
[];key
:ReturnType
<K
>; }>
Groups the elements of a sequence according to a specified key selector function.
Type Parameters
Type Parameter |
---|
K extends (...args : readonly unknown []) => unknown | (obj : T ) => unknown |
Parameters
Parameter | Type | Description |
---|---|---|
key | K | A function to extract the key for each element. |
Returns
Queryable
<{items
: T
[];key
: ReturnType
<K
>; }>
The result of the groupBy operation.
items
items:
T
[]
key
key:
ReturnType
<K
>
Defined in
packages/verse-core/src/query/queryable.ts:268
groupBy(key, result)
groupBy<
K
,R
>(key
:K
,result
: (param
:Grouping
<ReturnType
<K
>,T
>) =>R
):Queryable
<R
>
Groups the elements of a sequence according to a specified key selector function and creates a result value from each group.
Type Parameters
Type Parameter |
---|
K extends (...args : readonly unknown []) => unknown | (obj : T ) => unknown |
R |
Parameters
Parameter | Type | Description |
---|---|---|
key | K | A function to extract the key for each element. |
result | (param : Grouping <ReturnType <K >, T >) => R | A function to create a result value from each group. |
Returns
Queryable
<R
>
The queryable result of the groupBy operation.
Defined in
packages/verse-core/src/query/queryable.ts:280
join()
join<
S
,C
>(entityOrQuery
:Newable
<S
> |Queryable
<S
>,condition
:C
):Queryable
<JoinResult
<Parameters
<C
>>>
Joins the sequence with another sequence based on a condition.
Type Parameters
Type Parameter |
---|
S |
C extends (left : T , right : S ) => boolean | (...args : readonly [unknown , S ]) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
entityOrQuery | Newable <S > | Queryable <S > | The entity or query to join with. |
condition | C | The join condition. |
Returns
Queryable
<JoinResult
<Parameters
<C
>>>
The queryable result of the join operation.
Defined in
packages/verse-core/src/query/queryable.ts:209
leftJoin()
leftJoin<
S
,C
>(entityOrQuery
:Newable
<S
> |Queryable
<S
>,condition
:C
):Queryable
<JoinResult
<Parameters
<C
>>>
Left joins the sequence with another sequence based on a condition.
Type Parameters
Type Parameter |
---|
S |
C extends (left : T , right : S ) => boolean | (...args : readonly [unknown , S ]) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
entityOrQuery | Newable <S > | Queryable <S > | The entity or query to join with. |
condition | C | The join condition. |
Returns
Queryable
<JoinResult
<Parameters
<C
>>>
The queryable result of the join operation.
Defined in
packages/verse-core/src/query/queryable.ts:220
limit()
limit(
limit
:number
):Queryable
<T
>
Returns a specified number of contiguous elements from the start of a sequence.
Parameters
Parameter | Type | Description |
---|---|---|
limit | number | The number of elements to return. |
Returns
Queryable
<T
>
The queryable result of the limit operation.
Defined in
packages/verse-core/src/query/queryable.ts:297
max()
max(
expr
?:T
extendsJoinResult
<K
> ? (...args
: readonly [K
]) =>number
: (obj
:T
) =>number
):number
Returns the maximum value of the specified numerical expression for the sequence.
Parameters
Parameter | Type | Description |
---|---|---|
expr ? | T extends JoinResult <K > ? (...args : readonly [K ]) => number : (obj : T ) => number | The numerical expression to be evaluated. |
Returns
number
The maximum value of the specified numerical expression for the sequence.
Defined in
packages/verse-core/src/query/queryable.ts:408
maybeFirst()
maybeFirst<
P
>(predicate
?:P
):undefined
|T
Returns the first element of a sequence that satisfies a specified condition, or undefined
if no such element is found.
Type Parameters
Type Parameter |
---|
P extends (obj : T , ...args : []) => boolean | (...args : readonly unknown []) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
predicate ? | P | A function to test each element for a condition. |
Returns
undefined
| T
Defined in
packages/verse-core/src/query/queryable.ts:353
maybeSingle()
maybeSingle<
P
>(predicate
?:P
):undefined
|T
Returns the only element of a sequence that satisfies a specified condition, or undefined
if no such element is found.
Type Parameters
Type Parameter |
---|
P extends (obj : T , ...args : []) => boolean | (...args : readonly unknown []) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
predicate ? | P | A function to test each element for a condition. |
Returns
undefined
| T
The only element in the sequence that satisfies the condition, or undefined
if no such element is found.
Throws
Error, if multiple elements satisfy the condition.
Defined in
packages/verse-core/src/query/queryable.ts:378
min()
min(
expr
?:T
extendsJoinResult
<K
> ? (...args
: readonly [K
]) =>number
: (obj
:T
) =>number
):number
Returns the minimum value of the specified numerical expression for the sequence.
Parameters
Parameter | Type | Description |
---|---|---|
expr ? | T extends JoinResult <K > ? (...args : readonly [K ]) => number : (obj : T ) => number | The numerical expression to be evaluated. |
Returns
number
The minimum value of the specified numerical expression for the sequence.
Defined in
packages/verse-core/src/query/queryable.ts:398
offset()
offset(
offset
:number
):Queryable
<T
>
Skips a specified number of elements in a sequence and then returns the remaining elements.
Parameters
Parameter | Type | Description |
---|---|---|
offset | number | The number of elements to skip. |
Returns
Queryable
<T
>
The queryable result of the offset operation.
Defined in
packages/verse-core/src/query/queryable.ts:308
orderBy()
orderBy<
E
>(expr
:E
):Queryable
<T
>
Sorts the elements of a sequence in ascending order.
Type Parameters
Type Parameter |
---|
E extends (...args : readonly unknown []) => unknown | (obj : T ) => unknown |
Parameters
Parameter | Type | Description |
---|---|---|
expr | E | A function to extract a sort key from an element. |
Returns
Queryable
<T
>
The queryable result of the orderBy operation.
Defined in
packages/verse-core/src/query/queryable.ts:247
orderByDesc()
orderByDesc<
E
>(expr
:E
):Queryable
<T
>
Sorts the elements of a sequence in descending order.
Type Parameters
Type Parameter |
---|
E extends (...args : readonly unknown []) => unknown | (obj : T ) => unknown |
Parameters
Parameter | Type | Description |
---|---|---|
expr | E | A function to extract a sort key from an element. |
Returns
Queryable
<T
>
The queryable result of the orderByDesc operation.
Defined in
packages/verse-core/src/query/queryable.ts:258
select()
select<
P
>(projector
:P
):Queryable
<ReturnType
<P
>>
Projects each element of a sequence into a new form.
Type Parameters
Type Parameter |
---|
P extends (obj : T ) => unknown | (...args : readonly unknown []) => unknown |
Parameters
Parameter | Type | Description |
---|---|---|
projector | P | A function that transforms the input element. |
Returns
Queryable
<ReturnType
<P
>>
The queryable result of the select operation.
Defined in
packages/verse-core/src/query/queryable.ts:177
single()
single<
P
>(predicate
?:P
):T
Returns the only element of a sequence that satisfies a specified condition.
Type Parameters
Type Parameter |
---|
P extends (obj : T , ...args : []) => boolean | (...args : readonly unknown []) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
predicate ? | P | A function to test each element for a condition. |
Returns
T
The only element in the sequence that satisfies the condition.
Throws
Error, if no such element is found, or multiple elements satisfy the condition.
Defined in
packages/verse-core/src/query/queryable.ts:365
sum()
sum(
expr
?:T
extendsJoinResult
<K
> ? (...args
: readonly [K
]) =>number
: (obj
:T
) =>number
):number
Returns the sum of the specified numerical expression for the sequence.
Parameters
Parameter | Type | Description |
---|---|---|
expr ? | T extends JoinResult <K > ? (...args : readonly [K ]) => number : (obj : T ) => number | The numerical expression to be evaluated. |
Returns
number
The sum of the specified numerical expression for the sequence.
Defined in
packages/verse-core/src/query/queryable.ts:418
where()
where<
P
>(predicate
:P
):Queryable
<T
>
Filters a sequence of values based on a predicate.
Type Parameters
Type Parameter |
---|
P extends (obj : T , ...args : []) => boolean | (...args : readonly unknown []) => boolean |
Parameters
Parameter | Type | Description |
---|---|---|
predicate | P | A function to test each element for a condition. |
Returns
Queryable
<T
>
The queryable result of the where operation.
Defined in
packages/verse-core/src/query/queryable.ts:236
with()
with<
S
>(navigation
:T
extendsJoinResult
<K
> ? (...args
: readonly [K
]) =>S
: (obj
:T
) =>S
):Queryable
<T
>
Used to specify eager loading of related entities in queries.
Type Parameters
Type Parameter |
---|
S |
Parameters
Parameter | Type | Description |
---|---|---|
navigation | T extends JoinResult <K > ? (...args : readonly [K ]) => S : (obj : T ) => S | The navigation property to be loaded. |
Returns
Queryable
<T
>
The queryable result of the with operation.