pqb 0.11.27 → 0.11.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +126 -52
- package/dist/index.js +699 -637
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +713 -649
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as orchid_core from 'orchid-core';
|
|
2
|
-
import { Sql, QueryBaseCommon, ColumnsShapeBase, QueryInternal, QueryMetaBase, EmptyObject, RawExpression, ColumnTypeBase, MaybeArray, QueryResultRow, AdapterBase, QueryInput, StringKey, ColumnOutput,
|
|
2
|
+
import { Sql, QueryBaseCommon, ColumnsShapeBase, QueryInternal, QueryMetaBase, EmptyObject, RawExpression, ColumnTypeBase, MaybeArray, QueryResultRow, AdapterBase, QueryInput, ColumnsParsers, getValueKey, StringKey, ColumnOutput, QueryThen, QueryCatch, NullableColumn, EmptyTuple, ColumnTypesBase, ColumnShapeOutput, DefaultSelectColumns, DbBase, SetOptional, Spread, CoalesceString, QueryCommon, BaseNumberData, Code, ColumnWithDefault, numberTypeMethods, BaseStringData, PrimaryKeyColumn, DateColumnData, EncodeColumn, ParseColumn, dateTypeMethods, JSONTypeAny, record, ArrayMethodsData, arrayMethods, name, ColumnDataBase, BaseOperators, HiddenColumn, ValidationContext, MessageParam } from 'orchid-core';
|
|
3
3
|
import { PoolConfig, Pool, PoolClient } from 'pg';
|
|
4
4
|
import { inspect } from 'util';
|
|
5
5
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
@@ -467,26 +467,13 @@ type Resolve = (result: any) => any;
|
|
|
467
467
|
type Reject = (error: any) => any;
|
|
468
468
|
declare class Then {
|
|
469
469
|
get then(): typeof maybeWrappedThen;
|
|
470
|
-
catch
|
|
470
|
+
catch(this: Query, fn: (reason: any) => unknown): Promise<any>;
|
|
471
471
|
}
|
|
472
472
|
declare const handleResult: CommonQueryData['handleResult'];
|
|
473
473
|
declare function maybeWrappedThen(this: Query, resolve?: Resolve, reject?: Reject): Promise<any>;
|
|
474
474
|
declare const parseResult: (q: Query, parsers: ColumnsParsers | undefined, returnType: QueryReturnType | undefined, result: QueryResult, isSubQuery?: boolean) => unknown;
|
|
475
475
|
declare const parseRecord: (parsers: ColumnsParsers, row: any) => any;
|
|
476
476
|
|
|
477
|
-
type GetArg<T extends QueryBase> = StringKey<keyof T['selectable']> | RawExpression;
|
|
478
|
-
type UnwrapRaw<T extends Query, Arg extends GetArg<T>> = Arg extends RawExpression ? Arg['__column'] : Exclude<Arg, RawExpression>;
|
|
479
|
-
type GetResult<T extends Query, Arg extends GetArg<T>> = SetQueryReturnsValue<T, UnwrapRaw<T, Arg>>;
|
|
480
|
-
type GetOptionalResult<T extends Query, Arg extends GetArg<T>> = SetQueryReturnsValueOptional<T, UnwrapRaw<T, Arg>>;
|
|
481
|
-
type getValueKey = typeof getValueKey;
|
|
482
|
-
declare const getValueKey: unique symbol;
|
|
483
|
-
declare class QueryGet {
|
|
484
|
-
get<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetResult<T, Arg>;
|
|
485
|
-
_get<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetResult<T, Arg>;
|
|
486
|
-
getOptional<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetOptionalResult<T, Arg>;
|
|
487
|
-
_getOptional<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetOptionalResult<T, Arg>;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
477
|
type SelectArg<T extends QueryBase> = '*' | StringKey<keyof T['selectable']> | SelectAsArg<T>;
|
|
491
478
|
type SelectAsArg<T extends QueryBase> = Record<string, SelectAsValue<T>>;
|
|
492
479
|
type SelectAsValue<T extends QueryBase> = StringKey<keyof T['selectable']> | RawExpression | ((q: T) => Query) | ((q: T) => RawExpression) | ((q: T) => Query | RawExpression);
|
|
@@ -496,12 +483,12 @@ type SelectResult<T extends Query, Args extends SelectArg<T>[], SelectStringsRes
|
|
|
496
483
|
T['selectable']
|
|
497
484
|
]>, AsKeys extends keyof SelectAsResult[0] = keyof SelectAsResult[0], ResultKeys extends keyof T['result'] = T['meta']['hasSelect'] extends true ? keyof T['result'] : never, ShapeKeys extends keyof T['shape'] = '*' extends Args[number] ? keyof T['shape'] : never, Result extends ColumnsShapeBase = {
|
|
498
485
|
[K in StringsKeys | AsKeys | ResultKeys | ShapeKeys]: K extends StringsKeys ? SelectStringsResult[K] : K extends AsKeys ? SelectAsResult[0][K] : K extends ResultKeys ? T['result'][K] : K extends ShapeKeys ? T['shape'][K] : never;
|
|
499
|
-
}
|
|
486
|
+
}, Data = GetQueryResult<T['returnType'], Result>> = (T['meta']['hasSelect'] extends true ? unknown : {
|
|
500
487
|
meta: {
|
|
501
488
|
hasSelect: true;
|
|
502
489
|
};
|
|
503
490
|
}) & {
|
|
504
|
-
[K in keyof T]: K extends 'result' ? Result : K extends 'then' ? QueryThen<
|
|
491
|
+
[K in keyof T]: K extends 'result' ? Result : K extends 'then' ? QueryThen<Data> : K extends 'catch' ? QueryCatch<Data> : K extends 'selectable' ? SelectAsResult[1] : T[K];
|
|
505
492
|
};
|
|
506
493
|
type SelectStringArgsResult<T extends Query, Args extends SelectArg<T>[]> = {
|
|
507
494
|
[Arg in Args[number] as Arg extends keyof T['selectable'] ? T['selectable'][Arg]['as'] : never]: Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : never;
|
|
@@ -528,12 +515,83 @@ type SelectSubQueryResult<Arg extends Query & {
|
|
|
528
515
|
}> = QueryReturnsAll<Arg['returnType']> extends true ? ArrayOfColumnsObjects<Arg['result']> : Arg['returnType'] extends 'valueOrThrow' ? Arg['result']['value'] : Arg['returnType'] extends 'pluck' ? PluckResultColumnType<Arg['result']['pluck']> : Arg[isRequiredRelationKey] extends true ? ColumnsObject<Arg['result']> : NullableColumn<ColumnsObject<Arg['result']>>;
|
|
529
516
|
declare const addParserForRawExpression: (q: Query, key: string | getValueKey, raw: RawExpression) => void;
|
|
530
517
|
declare const addParserForSelectItem: <T extends Query>(q: T, as: string | getValueKey | undefined, key: string, arg: RawExpression | Query | StringKey<keyof T["selectable"]>) => string | RawExpression | Query;
|
|
531
|
-
declare const addParserToQuery: (query: QueryData, key: string | getValueKey, parser: ColumnParser) => void;
|
|
532
518
|
declare const processSelectArg: <T extends Query>(q: T, as: string | undefined, arg: SelectArg<T>, columnAs?: string | getValueKey) => SelectItem;
|
|
533
519
|
declare const getShapeFromSelect: (q: QueryBase, isSubQuery?: boolean) => ColumnsShapeBase;
|
|
534
520
|
declare class Select {
|
|
521
|
+
/**
|
|
522
|
+
* Takes a list of columns to be selected, and by default, the query builder will select all columns of the table.
|
|
523
|
+
*
|
|
524
|
+
* Pass an object to select columns with aliases. Keys of the object are column aliases, value can be a column name, sub-query, or raw expression.
|
|
525
|
+
*
|
|
526
|
+
* ```ts
|
|
527
|
+
* // select columns of the table:
|
|
528
|
+
* db.table.select('id', 'name', { idAlias: 'id' });
|
|
529
|
+
*
|
|
530
|
+
* // accepts columns with table names:
|
|
531
|
+
* db.table.select('user.id', 'user.name', { nameAlias: 'user.name' });
|
|
532
|
+
*
|
|
533
|
+
* // table name may refer to the current table or a joined table:
|
|
534
|
+
* db.table
|
|
535
|
+
* .join(Message, 'authorId', 'id')
|
|
536
|
+
* .select('user.name', 'message.text', { textAlias: 'message.text' });
|
|
537
|
+
*
|
|
538
|
+
* // select value from the sub-query,
|
|
539
|
+
* // this sub-query should return a single record and a single column:
|
|
540
|
+
* db.table.select({
|
|
541
|
+
* subQueryResult: Otherdb.table.select('column').take(),
|
|
542
|
+
* });
|
|
543
|
+
*
|
|
544
|
+
* // select raw SQL value, the first argument of `raw` is a column type, it is used for return type of the query
|
|
545
|
+
* db.table.select({
|
|
546
|
+
* raw: db.table.sql((t) => t.integer())`1 + 2`,
|
|
547
|
+
* });
|
|
548
|
+
*
|
|
549
|
+
* // same raw SQL query as above, but raw value is returned from a callback
|
|
550
|
+
* db.table.select({
|
|
551
|
+
* raw: (q) => q.sql((t) => t.integer())`1 + 2`,
|
|
552
|
+
* });
|
|
553
|
+
* ```
|
|
554
|
+
*
|
|
555
|
+
* When you use the ORM and defined relations, `select` can also accept callbacks with related table queries:
|
|
556
|
+
*
|
|
557
|
+
* ```ts
|
|
558
|
+
* await db.author.select({
|
|
559
|
+
* allBooks: (q) => q.books,
|
|
560
|
+
* firstBook: (q) => q.books.order({ createdAt: 'ASC' }).take(),
|
|
561
|
+
* booksCount: (q) => q.books.count(),
|
|
562
|
+
* });
|
|
563
|
+
* ```
|
|
564
|
+
*
|
|
565
|
+
* When you're selecting a relation that's connected via `belongsTo` or `hasOne`, it becomes available to use in `order` or in `where`:
|
|
566
|
+
*
|
|
567
|
+
* ```ts
|
|
568
|
+
* // select books with their authors included, order by author name and filter by author column:
|
|
569
|
+
* await db.books
|
|
570
|
+
* .select({
|
|
571
|
+
* author: (q) => q.author,
|
|
572
|
+
* })
|
|
573
|
+
* .order('author.name')
|
|
574
|
+
* .where({ 'author.isPopular': true });
|
|
575
|
+
* ```
|
|
576
|
+
*/
|
|
535
577
|
select<T extends Query, K extends SelectArg<T>[]>(this: T, ...args: K): SelectResult<T, K>;
|
|
536
578
|
_select<T extends Query, K extends SelectArg<T>[]>(this: T, ...args: K): SelectResult<T, K>;
|
|
579
|
+
/**
|
|
580
|
+
* When querying the table or creating records, all columns are selected by default,
|
|
581
|
+
* but updating and deleting queries are returning affected row counts by default.
|
|
582
|
+
*
|
|
583
|
+
* Use `selectAll` to select all columns. If the `.select` method was applied before it will be discarded.
|
|
584
|
+
*
|
|
585
|
+
* ```ts
|
|
586
|
+
* const selectFull = await db.table
|
|
587
|
+
* .select('id', 'name') // discarded by `selectAll`
|
|
588
|
+
* .selectAll();
|
|
589
|
+
*
|
|
590
|
+
* const updatedFull = await db.table.selectAll().where(conditions).update(data);
|
|
591
|
+
*
|
|
592
|
+
* const deletedFull = await db.table.selectAll().where(conditions).delete();
|
|
593
|
+
* ```
|
|
594
|
+
*/
|
|
537
595
|
selectAll<T extends Query>(this: T): SelectResult<T, ['*']>;
|
|
538
596
|
_selectAll<T extends Query>(this: T): SelectResult<T, ['*']>;
|
|
539
597
|
}
|
|
@@ -555,10 +613,10 @@ type FromQueryResult<T extends Query, Q extends Query, Selectable extends Select
|
|
|
555
613
|
as: K;
|
|
556
614
|
column: Q['result'][K];
|
|
557
615
|
} : never;
|
|
558
|
-
}
|
|
616
|
+
}, Data = GetQueryResult<T['returnType'], Q['result']>> = {
|
|
559
617
|
[K in keyof T]: K extends 'meta' ? Omit<T['meta'], 'hasSelect' | 'as'> & {
|
|
560
618
|
as: AliasOrTable<Q>;
|
|
561
|
-
} : K extends 'selectable' ? Selectable : K extends 'result' | 'shape' ? Q['result'] : K extends 'then' ? QueryThen<
|
|
619
|
+
} : K extends 'selectable' ? Selectable : K extends 'result' | 'shape' ? Q['result'] : K extends 'then' ? QueryThen<Data> : K extends 'catch' ? QueryCatch<Data> : T[K];
|
|
562
620
|
};
|
|
563
621
|
declare class From {
|
|
564
622
|
from<T extends Query, Args extends FromArgs<T>>(this: T, ...args: Args): FromResult<T, Args>;
|
|
@@ -714,13 +772,13 @@ type JoinAddSelectable<T extends Query, Selectable extends SelectableBase> = {
|
|
|
714
772
|
};
|
|
715
773
|
type JoinOptionalMain<T extends Query, Selectable extends SelectableBase, Result extends ColumnsShapeBase = {
|
|
716
774
|
[K in keyof T['result']]: NullableColumn<T['result'][K]>;
|
|
717
|
-
}
|
|
775
|
+
}, Data = GetQueryResult<T['returnType'], Result>> = {
|
|
718
776
|
[K in keyof T]: K extends 'selectable' ? {
|
|
719
777
|
[K in keyof T['selectable']]: {
|
|
720
778
|
as: T['selectable'][K]['as'];
|
|
721
779
|
column: NullableColumn<T['selectable'][K]['column']>;
|
|
722
780
|
};
|
|
723
|
-
} & Selectable : K extends 'result' ? Result : K extends 'then' ? QueryThen<
|
|
781
|
+
} & Selectable : K extends 'result' ? Result : K extends 'then' ? QueryThen<Data> : K extends 'catch' ? QueryCatch<Data> : T[K];
|
|
724
782
|
};
|
|
725
783
|
type JoinWithArgToQuery<With extends WithDataItem, Selectable extends SelectableBase = {
|
|
726
784
|
[K in keyof With['shape']]: {
|
|
@@ -863,7 +921,7 @@ type DbTableOptions = {
|
|
|
863
921
|
snakeCase?: boolean;
|
|
864
922
|
} & QueryLogOptions;
|
|
865
923
|
declare const anyShape: Record<string, ColumnType<unknown, orchid_core.BaseOperators, unknown>>;
|
|
866
|
-
interface Db<Table extends string | undefined = undefined, Shape extends ColumnsShape = Record<string, never>, Relations extends Query['relations'] = Query['relations'], CT extends ColumnTypesBase = DefaultColumnTypes> extends DbBase<Adapter, Table, Shape, CT>, QueryMethods {
|
|
924
|
+
interface Db<Table extends string | undefined = undefined, Shape extends ColumnsShape = Record<string, never>, Relations extends Query['relations'] = Query['relations'], CT extends ColumnTypesBase = DefaultColumnTypes, Data = Pick<ColumnShapeOutput<Shape>, DefaultSelectColumns<Shape>[number]>[]> extends DbBase<Adapter, Table, Shape, CT>, QueryMethods {
|
|
867
925
|
new (adapter: Adapter, queryBuilder: Db<Table, Shape, Relations, CT>, table?: Table, shape?: Shape, options?: DbTableOptions): this;
|
|
868
926
|
queryBuilder: Db;
|
|
869
927
|
whereQueryBuilder: Query['whereQueryBuilder'];
|
|
@@ -872,7 +930,8 @@ interface Db<Table extends string | undefined = undefined, Shape extends Columns
|
|
|
872
930
|
query: QueryData;
|
|
873
931
|
selectable: SelectableFromShape<Shape, Table>;
|
|
874
932
|
returnType: Query['returnType'];
|
|
875
|
-
then:
|
|
933
|
+
then: QueryThen<Data>;
|
|
934
|
+
catch: QueryCatch<Data>;
|
|
876
935
|
windows: Query['windows'];
|
|
877
936
|
defaultSelectColumns: DefaultSelectColumns<Shape>;
|
|
878
937
|
relations: Relations;
|
|
@@ -1366,11 +1425,23 @@ declare class QueryUpsertOrCreate {
|
|
|
1366
1425
|
_orCreate<T extends UpsertThis>(this: T, data: UpsertCreateArg<T>): UpsertResult<T>;
|
|
1367
1426
|
}
|
|
1368
1427
|
|
|
1369
|
-
type
|
|
1428
|
+
type GetArg<T extends QueryBase> = StringKey<keyof T['selectable']> | RawExpression;
|
|
1429
|
+
type UnwrapRaw<T extends Query, Arg extends GetArg<T>> = Arg extends RawExpression ? Arg['__column'] : Exclude<Arg, RawExpression>;
|
|
1430
|
+
type GetResult<T extends Query, Arg extends GetArg<T>> = SetQueryReturnsValue<T, UnwrapRaw<T, Arg>>;
|
|
1431
|
+
type GetOptionalResult<T extends Query, Arg extends GetArg<T>> = SetQueryReturnsValueOptional<T, UnwrapRaw<T, Arg>>;
|
|
1432
|
+
declare class QueryGet {
|
|
1433
|
+
get<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetResult<T, Arg>;
|
|
1434
|
+
_get<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetResult<T, Arg>;
|
|
1435
|
+
getOptional<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetOptionalResult<T, Arg>;
|
|
1436
|
+
_getOptional<T extends Query, Arg extends GetArg<T>>(this: T, arg: Arg): GetOptionalResult<T, Arg>;
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
type MergeQuery<T extends Query, Q extends Query, ReturnType extends QueryReturnType = QueryReturnType extends Q['returnType'] ? T['returnType'] : Q['returnType'], Data = T['meta']['hasSelect'] extends true ? GetQueryResult<ReturnType, Spread<[T['result'], Q['result']]>> : GetQueryResult<ReturnType, Q['result']>> = Omit<T, 'result' | 'returnType' | 'then' | 'catch' | 'selectable' | 'windows' | 'withData'> & {
|
|
1370
1440
|
meta: Q['meta'];
|
|
1371
1441
|
result: T['meta']['hasSelect'] extends true ? Spread<[T['result'], Q['result']]> : Q['result'];
|
|
1372
1442
|
returnType: ReturnType;
|
|
1373
|
-
then:
|
|
1443
|
+
then: QueryThen<Data>;
|
|
1444
|
+
catch: QueryCatch<Data>;
|
|
1374
1445
|
selectable: T['selectable'] & Q['selectable'];
|
|
1375
1446
|
windows: T['windows'] & Q['windows'];
|
|
1376
1447
|
withData: T['withData'] & Q['withData'];
|
|
@@ -1627,8 +1698,6 @@ declare class Aggregate {
|
|
|
1627
1698
|
_selectStringAgg<T extends Query, As extends string | undefined = undefined>(this: T, arg: StringExpression<T>, delimiter: string, options?: AggregateOptions<T, As>): SelectAgg<T, 'string_agg', As, NullableColumn<StringColumn>>;
|
|
1628
1699
|
}
|
|
1629
1700
|
|
|
1630
|
-
type ColumnParser = (input: unknown) => unknown;
|
|
1631
|
-
type ColumnsParsers = Record<string | getValueKey, ColumnParser>;
|
|
1632
1701
|
type SelectableBase = Record<PropertyKey, {
|
|
1633
1702
|
as: string;
|
|
1634
1703
|
column: ColumnTypeBase;
|
|
@@ -1664,7 +1733,8 @@ type Query = QueryCommon & QueryMethods & {
|
|
|
1664
1733
|
result: ColumnsShapeBase;
|
|
1665
1734
|
selectable: SelectableBase;
|
|
1666
1735
|
returnType: QueryReturnType;
|
|
1667
|
-
then:
|
|
1736
|
+
then: QueryThen<unknown>;
|
|
1737
|
+
catch: QueryCatch<unknown>;
|
|
1668
1738
|
windows: EmptyObject;
|
|
1669
1739
|
defaultSelectColumns: string[];
|
|
1670
1740
|
relations: RelationsBase;
|
|
@@ -1681,32 +1751,32 @@ type QueryReturnType = 'all' | 'one' | 'oneOrThrow' | 'rows' | 'pluck' | 'value'
|
|
|
1681
1751
|
declare const queryTypeWithLimitOne: Record<QueryReturnType, true | undefined>;
|
|
1682
1752
|
declare const isQueryReturnsAll: (q: Query) => boolean;
|
|
1683
1753
|
type QueryReturnsAll<T extends QueryReturnType> = (QueryReturnType extends T ? 'all' : T) extends 'all' ? true : false;
|
|
1684
|
-
type
|
|
1754
|
+
type GetQueryResult<ReturnType extends QueryReturnType, Result extends ColumnsShapeBase> = QueryReturnsAll<ReturnType> extends true ? ColumnShapeOutput<Result>[] : ReturnType extends 'one' ? ColumnShapeOutput<Result> | undefined : ReturnType extends 'oneOrThrow' ? ColumnShapeOutput<Result> : ReturnType extends 'value' ? Result extends {
|
|
1685
1755
|
value: ColumnType;
|
|
1686
|
-
} ?
|
|
1756
|
+
} ? Result['value']['type'] | undefined : never : ReturnType extends 'valueOrThrow' ? Result extends {
|
|
1687
1757
|
value: ColumnType;
|
|
1688
|
-
} ?
|
|
1758
|
+
} ? Result['value']['type'] : never : ReturnType extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : ReturnType extends 'pluck' ? Result extends {
|
|
1689
1759
|
pluck: ColumnType;
|
|
1690
|
-
} ?
|
|
1691
|
-
type AddQuerySelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase
|
|
1692
|
-
|
|
1693
|
-
hasSelect: true;
|
|
1694
|
-
} : K extends 'result' ? Result : K extends 'then' ? QueryThen<T['returnType'], Result> : T[K];
|
|
1695
|
-
};
|
|
1696
|
-
type MergeSelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase, Merged extends ColumnsShapeBase = {
|
|
1760
|
+
} ? Result['pluck']['type'][] : never : ReturnType extends 'rowCount' ? number : ReturnType extends 'void' ? void : never;
|
|
1761
|
+
type AddQuerySelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase, Data = GetQueryResult<T['returnType'], Result>> = T['meta']['hasSelect'] extends true ? MergeSelect<T, Result, Data> : SetSelect<T, Result, Data>;
|
|
1762
|
+
type MergeSelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase, Data, Merged extends ColumnsShapeBase = {
|
|
1697
1763
|
[K in keyof T['result']]: K extends keyof Result ? unknown : T['result'][K];
|
|
1698
1764
|
} & Result> = {
|
|
1699
|
-
[K in keyof T]: K extends 'result' ? Merged : K extends 'then' ? QueryThen<
|
|
1765
|
+
[K in keyof T]: K extends 'result' ? Merged : K extends 'then' ? QueryThen<Data> : K extends 'catch' ? QueryCatch<Data> : T[K];
|
|
1766
|
+
};
|
|
1767
|
+
type SetSelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase, Data> = {
|
|
1768
|
+
[K in keyof T]: K extends 'meta' ? T['meta'] & {
|
|
1769
|
+
hasSelect: true;
|
|
1770
|
+
} : K extends 'result' ? Result : K extends 'then' ? QueryThen<Data> : K extends 'catch' ? QueryCatch<Data> : T[K];
|
|
1700
1771
|
};
|
|
1701
|
-
type SetQueryReturns<T extends Query, R extends QueryReturnType
|
|
1702
|
-
returnType:
|
|
1703
|
-
then: QueryThen<R, T['result']>;
|
|
1772
|
+
type SetQueryReturns<T extends Query, R extends QueryReturnType, Data = GetQueryResult<R, T['result']>> = {
|
|
1773
|
+
[K in keyof T]: K extends 'returnType' ? R : K extends 'then' ? QueryThen<Data> : K extends 'catch' ? QueryCatch<Data> : T[K];
|
|
1704
1774
|
};
|
|
1705
1775
|
type SetQueryReturnsAll<T extends Query> = SetQueryReturns<T, 'all'>;
|
|
1706
1776
|
type SetQueryReturnsOneOptional<T extends Query> = SetQueryReturns<T, 'one'>;
|
|
1707
1777
|
type SetQueryReturnsOne<T extends Query> = SetQueryReturns<T, 'oneOrThrow'>;
|
|
1708
1778
|
type SetQueryReturnsRows<T extends Query> = SetQueryReturns<T, 'rows'>;
|
|
1709
|
-
type SetQueryReturnsPluck<T extends Query, S extends keyof T['selectable'] | RawExpression, C extends ColumnTypeBase = S extends keyof T['selectable'] ? T['selectable'][S]['column'] : S extends RawExpression ? S['__column'] : never> = Omit<T, 'result' | 'returnType' | 'then'> & {
|
|
1779
|
+
type SetQueryReturnsPluck<T extends Query, S extends keyof T['selectable'] | RawExpression, C extends ColumnTypeBase = S extends keyof T['selectable'] ? T['selectable'][S]['column'] : S extends RawExpression ? S['__column'] : never> = Omit<T, 'result' | 'returnType' | 'then' | 'catch'> & {
|
|
1710
1780
|
meta: {
|
|
1711
1781
|
hasSelect: true;
|
|
1712
1782
|
};
|
|
@@ -1714,9 +1784,10 @@ type SetQueryReturnsPluck<T extends Query, S extends keyof T['selectable'] | Raw
|
|
|
1714
1784
|
pluck: C;
|
|
1715
1785
|
};
|
|
1716
1786
|
returnType: 'pluck';
|
|
1717
|
-
then:
|
|
1787
|
+
then: QueryThen<C['type'][]>;
|
|
1788
|
+
catch: QueryCatch<C['type'][]>;
|
|
1718
1789
|
};
|
|
1719
|
-
type SetQueryReturnsValueOptional<T extends Query, Arg extends Exclude<GetArg<T>, RawExpression> | ColumnTypeBase, Column extends ColumnTypeBase = Arg extends ColumnTypeBase ? Arg : Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RelationQueryBase ? Arg['result']['value'] : never> = Omit<T, 'result' | 'returnType' | 'then'> & {
|
|
1790
|
+
type SetQueryReturnsValueOptional<T extends Query, Arg extends Exclude<GetArg<T>, RawExpression> | ColumnTypeBase, Column extends ColumnTypeBase = Arg extends ColumnTypeBase ? Arg : Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RelationQueryBase ? Arg['result']['value'] : never> = Omit<T, 'result' | 'returnType' | 'then' | 'catch'> & {
|
|
1720
1791
|
meta: {
|
|
1721
1792
|
hasSelect: true;
|
|
1722
1793
|
};
|
|
@@ -1724,9 +1795,10 @@ type SetQueryReturnsValueOptional<T extends Query, Arg extends Exclude<GetArg<T>
|
|
|
1724
1795
|
value: Column;
|
|
1725
1796
|
};
|
|
1726
1797
|
returnType: 'value';
|
|
1727
|
-
then:
|
|
1798
|
+
then: QueryThen<Column['type'] | undefined>;
|
|
1799
|
+
catch: QueryThen<Column['type'] | undefined>;
|
|
1728
1800
|
};
|
|
1729
|
-
type SetQueryReturnsValue<T extends Query, Arg extends Exclude<GetArg<T>, RawExpression> | ColumnTypeBase, Column extends ColumnTypeBase = Arg extends ColumnTypeBase ? Arg : Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RelationQueryBase ? Arg['result']['value'] : never> = Omit<T, 'result' | 'returnType' | 'then'> & {
|
|
1801
|
+
type SetQueryReturnsValue<T extends Query, Arg extends Exclude<GetArg<T>, RawExpression> | ColumnTypeBase, Column extends ColumnTypeBase = Arg extends ColumnTypeBase ? Arg : Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RelationQueryBase ? Arg['result']['value'] : never> = Omit<T, 'result' | 'returnType' | 'then' | 'catch'> & {
|
|
1730
1802
|
meta: {
|
|
1731
1803
|
hasSelect: true;
|
|
1732
1804
|
};
|
|
@@ -1734,16 +1806,18 @@ type SetQueryReturnsValue<T extends Query, Arg extends Exclude<GetArg<T>, RawExp
|
|
|
1734
1806
|
value: Column;
|
|
1735
1807
|
};
|
|
1736
1808
|
returnType: 'valueOrThrow';
|
|
1737
|
-
then:
|
|
1809
|
+
then: QueryThen<Column['type']>;
|
|
1810
|
+
catch: QueryCatch<Column['type']>;
|
|
1738
1811
|
};
|
|
1739
1812
|
type SetQueryReturnsRowCount<T extends Query> = SetQueryReturns<T, 'rowCount'>;
|
|
1740
1813
|
type SetQueryReturnsVoid<T extends Query> = SetQueryReturns<T, 'void'>;
|
|
1741
|
-
type SetQueryReturnsColumnInfo<T extends Query, Column extends keyof T['shape'] | undefined, Result = Column extends keyof T['shape'] ? ColumnInfo : Record<keyof T['shape'], ColumnInfo>> = Omit<T, 'result' | 'returnType' | 'then'> & {
|
|
1814
|
+
type SetQueryReturnsColumnInfo<T extends Query, Column extends keyof T['shape'] | undefined, Result = Column extends keyof T['shape'] ? ColumnInfo : Record<keyof T['shape'], ColumnInfo>> = Omit<T, 'result' | 'returnType' | 'then' | 'catch'> & {
|
|
1742
1815
|
result: {
|
|
1743
1816
|
value: ColumnType<Result>;
|
|
1744
1817
|
};
|
|
1745
1818
|
returnType: 'value';
|
|
1746
|
-
then:
|
|
1819
|
+
then: QueryThen<Result>;
|
|
1820
|
+
catch: QueryCatch<Result>;
|
|
1747
1821
|
};
|
|
1748
1822
|
type SetQueryTableAlias<T extends Pick<Query, 'selectable' | 'table' | 'meta'> & {
|
|
1749
1823
|
shape: ColumnsShapeBase;
|
|
@@ -3770,4 +3844,4 @@ declare const testTransaction: {
|
|
|
3770
3844
|
close(arg: Arg): Promise<void>;
|
|
3771
3845
|
};
|
|
3772
3846
|
|
|
3773
|
-
export { Adapter, AdapterConfig, AdapterOptions, AddQuerySelect, AddQueryWith, AfterHook, AfterHookKey, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeHook, BeforeHookKey, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators,
|
|
3847
|
+
export { Adapter, AdapterConfig, AdapterOptions, AddQuerySelect, AddQueryWith, AfterHook, AfterHookKey, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeHook, BeforeHookKey, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators, ColumnType, ColumnTypes, ColumnsObject, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTable, From, FromArgs, FromResult, GetArg, GetQueryResult, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingArgs, HavingItem, IdentityColumn, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinLateralCallback, JoinLateralItem, JoinLateralResult, JoinResult, JoinedParsers, JoinedShapes, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operators, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgs, OrderItem, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryArraysResult, QueryBase, QueryData, QueryError, QueryErrorName, QueryGet, QueryHooks, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QueryUpsertOrCreate, QueryWithTable, RawSqlMethods, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationQueryData, RelationsBase, Select, SelectAgg, SelectArg, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SelectableFromShape, SerialColumn, SerialColumnData, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWith, SimpleJoinItem, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, StringColumn, StringExpression, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimestampColumn, TimestampTZColumn, ToSqlCtx, ToSqlOptions, Transaction, TransactionAdapter, TransactionOptions, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertCreateArg, UpsertData, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowFunctionOptions, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addQueryHook, addQueryOn, addQueryOrOn, addWhere, addWhereIn, addWhereNot, aggregate1FunctionNames, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, utils as columnUtils, columnsByType, columnsShapeToCode, constraintPropsToCode, constraintToCode, createDb, foreignKeyArgumentToCode, getClonedQueryData, getColumnTypes, getConstraintKind, getQueryAs, getRaw, getShapeFromSelect, getTableData, handleResult, identityToCode, indexToCode, instantiateColumn, isQueryReturnsAll, isRequiredRelationKey, jsonTypes, logColors, logParamToLogObject, makeRegexToFindInSql, makeSql, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, referencesArgsToCode, relationQueryKey, resetTableData, setQueryObjectValue, simplifyColumnDefault, testTransaction, toSql, toSqlCacheKey };
|