mirror of
https://github.com/knex/knex.git
synced 2025-09-24 23:54:55 +00:00
Update signature of orderBy to support QueryBuilder inside array (#3757)
Fixes #3738
This commit is contained in:
parent
2fbe91da1a
commit
c35a66d31b
17
types/index.d.ts
vendored
17
types/index.d.ts
vendored
@ -1215,21 +1215,24 @@ declare namespace Knex {
|
|||||||
ColumnNameQueryBuilder<TRecord, TResult> {}
|
ColumnNameQueryBuilder<TRecord, TResult> {}
|
||||||
|
|
||||||
interface OrderBy<TRecord = any, TResult = unknown[]> {
|
interface OrderBy<TRecord = any, TResult = unknown[]> {
|
||||||
(columnName: keyof TRecord, order?: 'asc' | 'desc'): QueryBuilder<
|
(columnName: keyof TRecord | QueryBuilder, order?: 'asc' | 'desc'): QueryBuilder<
|
||||||
TRecord,
|
TRecord,
|
||||||
TResult
|
TResult
|
||||||
>;
|
>;
|
||||||
(columnName: string, order?: string): QueryBuilder<TRecord, TResult>;
|
(columnName: string | QueryBuilder, order?: string): QueryBuilder<TRecord, TResult>;
|
||||||
(
|
(
|
||||||
columnDefs: Array<
|
columnDefs: Array<
|
||||||
keyof TRecord | Readonly<{ column: keyof TRecord; order?: 'asc' | 'desc' }>
|
keyof TRecord | Readonly<{
|
||||||
|
column: keyof TRecord | QueryBuilder;
|
||||||
|
order?: 'asc' | 'desc'
|
||||||
|
}>
|
||||||
>
|
>
|
||||||
): QueryBuilder<TRecord, TResult>;
|
): QueryBuilder<TRecord, TResult>;
|
||||||
(
|
(
|
||||||
columnDefs: Array<string | Readonly<{ column: string; order?: string }>>
|
columnDefs: Array<string | Readonly<{
|
||||||
): QueryBuilder<TRecord, TResult>;
|
column: string | QueryBuilder;
|
||||||
<TRecordInner, TResultInner>(
|
order?: string;
|
||||||
subQueryBuilder: QueryBuilder<TRecordInner, TResultInner>
|
}>>
|
||||||
): QueryBuilder<TRecord, TResult>;
|
): QueryBuilder<TRecord, TResult>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -541,6 +541,33 @@ const main = async () => {
|
|||||||
.where('users.id', 'u.id')
|
.where('users.id', 'u.id')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
await knex<User>('users')
|
||||||
|
.select()
|
||||||
|
.orderBy([{
|
||||||
|
column: knex<User>('users')
|
||||||
|
.select('u.id')
|
||||||
|
.from('users as u')
|
||||||
|
.where('users.id', 'u.id'),
|
||||||
|
order: 'desc'
|
||||||
|
}]);
|
||||||
|
|
||||||
|
await knex<User>('users')
|
||||||
|
.select()
|
||||||
|
.orderBy([{
|
||||||
|
column: 'id',
|
||||||
|
order: 'desc'
|
||||||
|
}, {
|
||||||
|
column: 'name',
|
||||||
|
order: 'desc'
|
||||||
|
}]);
|
||||||
|
|
||||||
|
await knex<User>('users')
|
||||||
|
.select()
|
||||||
|
.orderBy([{
|
||||||
|
column: 'id',
|
||||||
|
order: 'desc'
|
||||||
|
}, 'name']);
|
||||||
|
|
||||||
// $ExpectType Dict<string | number>[]
|
// $ExpectType Dict<string | number>[]
|
||||||
await knex<User>('users').count();
|
await knex<User>('users').count();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user