pqb 0.10.16 → 0.10.19
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 +99 -94
- package/dist/index.js +32 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -12
- 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 { EmptyObject, RawExpression, ColumnTypeBase, MaybeArray, QueryResultRow, AdapterBase, QueryInput, ColumnsShapeBase, StringKey, ColumnOutput,
|
|
2
|
+
import { EmptyObject, RawExpression, ColumnTypeBase, MaybeArray, QueryResultRow, AdapterBase, QueryInput, ColumnsShapeBase, StringKey, ColumnOutput, NullableColumn, QueryInternal, QueryMetaBase, EmptyTuple, ColumnTypesBase, DbBase, ThenResult, ColumnShapeOutput, DefaultSelectColumns, SetOptional, Spread, CoalesceString, QueryBaseCommon, QueryCommon, ColumnDataBase, BaseOperators, PrimaryKeyColumn, HiddenColumn, ValidationContext, MessageParam, BaseNumberData, Code, numberTypeMethods, BaseStringData, DateColumnData, dateTypeMethods, JSONTypeAny, record, ArrayMethodsData, arrayMethods, name } from 'orchid-core';
|
|
3
3
|
import { PoolConfig, Pool, PoolClient } from 'pg';
|
|
4
4
|
|
|
5
5
|
declare type BaseRelation = {
|
|
@@ -462,12 +462,22 @@ declare class QueryGet {
|
|
|
462
462
|
}
|
|
463
463
|
|
|
464
464
|
declare type SelectArg<T extends QueryBase> = '*' | StringKey<keyof T['selectable']> | (T['relations'] extends Record<string, Relation> ? StringKey<keyof T['relations']> : never) | SelectAsArg<T>;
|
|
465
|
-
declare type SelectAsArg<T extends QueryBase> = Record<string,
|
|
466
|
-
declare type
|
|
465
|
+
declare type SelectAsArg<T extends QueryBase> = Record<string, SelectAsValue<T>>;
|
|
466
|
+
declare type SelectAsValue<T extends QueryBase> = StringKey<keyof T['selectable']> | RawExpression | ((q: T) => Query) | ((q: T) => RawExpression);
|
|
467
|
+
declare type SelectResult<T extends Query, Args extends SelectArg<T>[], SelectAllResult extends ColumnsShapeBase = '*' extends Args[number] ? T['shape'] : EmptyObject, SelectStringsResult extends ColumnsShapeBase = SelectStringArgsResult<T, Args>, SelectAsResult extends ColumnsShapeBase = SpreadSelectArgs<T, Args>> = AddQuerySelect<T, SelectAllResult & {
|
|
468
|
+
[K in keyof SelectStringsResult]: K extends keyof SelectAsResult ? unknown : SelectStringsResult[K];
|
|
469
|
+
} & SelectAsResult>;
|
|
470
|
+
declare type SpreadSelectArgs<T extends Query, Args extends [...any]> = Args extends [
|
|
471
|
+
infer L,
|
|
472
|
+
...infer R
|
|
473
|
+
] ? L extends SelectAsArg<T> ? SelectAsResult<T, L> & SpreadSelectArgs<T, R> : SpreadSelectArgs<T, R> : EmptyObject;
|
|
474
|
+
declare type SelectStringArgsResult<T extends Query, Args extends SelectArg<T>[]> = {
|
|
467
475
|
[Arg in Args[number] as Arg extends keyof T['selectable'] ? T['selectable'][Arg]['as'] : Arg extends keyof T['relations'] ? Arg : never]: Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['returns'] extends 'many' ? ArrayOfColumnsObjects<T['relations'][Arg]['table']['result']> : T['relations'][Arg]['options']['required'] extends true ? ColumnsObject<T['relations'][Arg]['table']['result']> : NullableColumn<ColumnsObject<T['relations'][Arg]['table']['result']>> : never : never;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
|
|
476
|
+
};
|
|
477
|
+
declare type SelectAsResult<T extends Query, Arg extends SelectAsArg<T>> = {
|
|
478
|
+
[K in keyof Arg]: SelectAsValueResult<T, Arg[K]>;
|
|
479
|
+
};
|
|
480
|
+
declare type SelectAsValueResult<T extends Query, Arg extends SelectAsValue<T>> = Arg extends keyof T['selectable'] ? T['selectable'][Arg]['column'] : Arg extends RawExpression ? Arg['__column'] : Arg extends (q: T) => infer R ? R extends Query ? SelectSubQueryResult<R> : R extends RawExpression ? R['__column'] : never : never;
|
|
471
481
|
declare type SelectSubQueryResult<Arg extends Query & {
|
|
472
482
|
[isRequiredRelationKey]?: boolean;
|
|
473
483
|
}> = 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']>>;
|
|
@@ -489,23 +499,22 @@ declare type FromArgs<T extends Query> = [
|
|
|
489
499
|
only?: boolean;
|
|
490
500
|
}
|
|
491
501
|
];
|
|
492
|
-
declare type SetFromSelectable<T extends Query, Arg extends Query> = Omit<T, 'selectable'> & {
|
|
493
|
-
selectable: {
|
|
494
|
-
[K in keyof Arg['result']]: K extends string ? {
|
|
495
|
-
as: K;
|
|
496
|
-
column: Arg['result'][K];
|
|
497
|
-
} : never;
|
|
498
|
-
};
|
|
499
|
-
};
|
|
500
|
-
declare type MergeFromResult<T extends Query, Arg extends Query> = AddQuerySelect<Omit<T, 'result'> & {
|
|
501
|
-
result: Pick<T['result'], keyof Arg['result']>;
|
|
502
|
-
}, Arg['result']>;
|
|
503
502
|
declare type FromResult<T extends Query, Args extends FromArgs<T>, Arg = Args[0]> = Arg extends string ? T['withData'] extends Record<string, WithDataItem> ? Arg extends keyof T['withData'] ? Omit<T, 'meta' | 'selectable'> & {
|
|
504
503
|
meta: Omit<T['meta'], 'as'> & {
|
|
505
504
|
as?: string;
|
|
506
505
|
};
|
|
507
506
|
selectable: SelectableFromShape<T['withData'][Arg]['shape'], Arg>;
|
|
508
|
-
} : SetQueryTableAlias<T, Arg> : SetQueryTableAlias<T, Arg> : Arg extends Query ?
|
|
507
|
+
} : SetQueryTableAlias<T, Arg> : SetQueryTableAlias<T, Arg> : Arg extends Query ? FromQueryResult<T, Arg> : T;
|
|
508
|
+
declare type FromQueryResult<T extends Query, Q extends Query, Selectable extends SelectableBase = {
|
|
509
|
+
[K in keyof Q['result']]: K extends string ? {
|
|
510
|
+
as: K;
|
|
511
|
+
column: Q['result'][K];
|
|
512
|
+
} : never;
|
|
513
|
+
}> = {
|
|
514
|
+
[K in keyof T]: K extends 'meta' ? Omit<T['meta'], 'hasSelect' | 'as'> & {
|
|
515
|
+
as: AliasOrTable<Q>;
|
|
516
|
+
} : K extends 'selectable' ? Selectable : K extends 'result' | 'shape' ? Q['result'] : K extends 'then' ? QueryThen<T['returnType'], Q['result']> : T[K];
|
|
517
|
+
};
|
|
509
518
|
declare class From {
|
|
510
519
|
from<T extends Query, Args extends FromArgs<T>>(this: T, ...args: Args): FromResult<T, Args>;
|
|
511
520
|
_from<T extends Query, Args extends FromArgs<T>>(this: T, ...args: Args): FromResult<T, Args>;
|
|
@@ -520,7 +529,7 @@ declare type WhereArg<T extends QueryBase> = (Omit<{
|
|
|
520
529
|
columns: (keyof T['selectable'])[];
|
|
521
530
|
values: unknown[][] | Query | RawExpression;
|
|
522
531
|
}>;
|
|
523
|
-
EXISTS?: MaybeArray<JoinArgs<T> | [
|
|
532
|
+
EXISTS?: MaybeArray<[JoinFirstArg<T>, ...JoinArgs<T, Query>] | [JoinFirstArg<T>, JoinCallback<T, JoinFirstArg<T>>]>;
|
|
524
533
|
}) | QueryBase | RawExpression | ((q: WhereQueryBuilder<T>) => WhereQueryBuilder);
|
|
525
534
|
declare type WhereInColumn<T extends QueryBase> = keyof T['selectable'] | [keyof T['selectable'], ...(keyof T['selectable'])[]];
|
|
526
535
|
declare type WhereInValues<T extends QueryBase, Column extends WhereInColumn<T>> = Column extends keyof T['selectable'] ? T['selectable'][Column]['column']['type'][] | Query | RawExpression : ({
|
|
@@ -582,22 +591,22 @@ declare abstract class Where implements QueryBase {
|
|
|
582
591
|
orWhereNotIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
583
592
|
_orWhereNotIn<T extends Where, Column extends WhereInColumn<T>>(this: T, column: Column, values: WhereInValues<T, Column>): WhereResult<T>;
|
|
584
593
|
_orWhereNotIn<T extends Where>(this: T, arg: WhereInArg<T>): WhereResult<T>;
|
|
585
|
-
whereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
586
|
-
whereExists<T extends Where, Arg extends
|
|
587
|
-
_whereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
588
|
-
_whereExists<T extends Where, Arg extends
|
|
589
|
-
orWhereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
590
|
-
orWhereExists<T extends Where, Arg extends
|
|
591
|
-
_orWhereExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
592
|
-
_orWhereExists<T extends Where, Arg extends
|
|
593
|
-
whereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
594
|
-
whereNotExists<T extends Where, Arg extends
|
|
595
|
-
_whereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
596
|
-
_whereNotExists<T extends Where, Arg extends
|
|
597
|
-
orWhereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
598
|
-
orWhereNotExists<T extends Where, Arg extends
|
|
599
|
-
_orWhereNotExists<T extends Where, Args extends JoinArgs<T>>(this: T, ...args: Args): WhereResult<T>;
|
|
600
|
-
_orWhereNotExists<T extends Where, Arg extends
|
|
594
|
+
whereExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
595
|
+
whereExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
596
|
+
_whereExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
597
|
+
_whereExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
598
|
+
orWhereExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
599
|
+
orWhereExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
600
|
+
_orWhereExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
601
|
+
_orWhereExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
602
|
+
whereNotExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
603
|
+
whereNotExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
604
|
+
_whereNotExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
605
|
+
_whereNotExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
606
|
+
orWhereNotExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
607
|
+
orWhereNotExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
608
|
+
_orWhereNotExists<T extends Where, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): WhereResult<T>;
|
|
609
|
+
_orWhereNotExists<T extends Where, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): WhereResult<T>;
|
|
601
610
|
}
|
|
602
611
|
declare class WhereQueryBuilder<Q extends QueryBase = QueryBase> extends Where implements QueryBase {
|
|
603
612
|
selectable: Q['selectable'];
|
|
@@ -605,44 +614,40 @@ declare class WhereQueryBuilder<Q extends QueryBase = QueryBase> extends Where i
|
|
|
605
614
|
relations: Q['relations'];
|
|
606
615
|
baseQuery: Query;
|
|
607
616
|
withData: {};
|
|
608
|
-
internal:
|
|
617
|
+
internal: QueryInternal;
|
|
609
618
|
constructor(q: QueryBase | string, { shape, joinedShapes }: Pick<QueryData, 'shape' | 'joinedShapes'>);
|
|
610
619
|
clone<T extends this>(this: T): T;
|
|
611
620
|
}
|
|
612
621
|
|
|
613
622
|
declare type WithSelectable<T extends QueryBase, W extends keyof T['withData']> = T['withData'][W] extends WithDataItem ? StringKey<keyof T['withData'][W]['shape']> | `${T['withData'][W]['table']}.${StringKey<keyof T['withData'][W]['shape']>}` : never;
|
|
614
|
-
declare type
|
|
615
|
-
|
|
616
|
-
|
|
623
|
+
declare type JoinFirstArg<T extends QueryBase> = Query | keyof T['relations'] | keyof T['withData'];
|
|
624
|
+
declare type JoinArgs<T extends QueryBase, Arg extends JoinFirstArg<T>> = Arg extends Query ? JoinQueryArgs<T, Arg> : Arg extends keyof T['relations'] ? EmptyTuple : Arg extends keyof T['withData'] ? JoinWithArgs<T, Arg> : never;
|
|
625
|
+
declare type JoinQueryArgs<T extends QueryBase, Q extends Query, JoinSelectable extends PropertyKey = keyof Q['result'] | `${AliasOrTable<Q>}.${StringKey<keyof Q['result']>}`> = [
|
|
626
|
+
conditions: Record<JoinSelectable, Selectable<T> | RawExpression> | RawExpression
|
|
617
627
|
] | [
|
|
618
|
-
|
|
619
|
-
conditions: Record<WithSelectable<T, W>, Selectable<T> | RawExpression> | RawExpression
|
|
620
|
-
] | [
|
|
621
|
-
query: Q,
|
|
622
|
-
leftColumn: Selectable<Q> | RawExpression,
|
|
628
|
+
leftColumn: JoinSelectable | RawExpression,
|
|
623
629
|
rightColumn: Selectable<T> | RawExpression
|
|
624
630
|
] | [
|
|
625
|
-
|
|
626
|
-
|
|
631
|
+
leftColumn: JoinSelectable | RawExpression,
|
|
632
|
+
op: string,
|
|
627
633
|
rightColumn: Selectable<T> | RawExpression
|
|
634
|
+
] | [conditions: true];
|
|
635
|
+
declare type JoinWithArgs<T extends QueryBase, W extends keyof T['withData']> = [
|
|
636
|
+
conditions: Record<WithSelectable<T, W>, Selectable<T> | RawExpression> | RawExpression
|
|
628
637
|
] | [
|
|
629
|
-
|
|
630
|
-
leftColumn: Selectable<Q> | RawExpression,
|
|
631
|
-
op: string,
|
|
638
|
+
leftColumn: WithSelectable<T, W> | RawExpression,
|
|
632
639
|
rightColumn: Selectable<T> | RawExpression
|
|
633
640
|
] | [
|
|
634
|
-
withAlias: W,
|
|
635
641
|
leftColumn: WithSelectable<T, W> | RawExpression,
|
|
636
642
|
op: string,
|
|
637
643
|
rightColumn: Selectable<T> | RawExpression
|
|
638
|
-
]
|
|
639
|
-
declare type JoinResult<T extends Query,
|
|
640
|
-
table: T['withData'][
|
|
641
|
-
result: T['withData'][
|
|
644
|
+
];
|
|
645
|
+
declare type JoinResult<T extends Query, Arg extends JoinFirstArg<T>> = AddQueryJoinedTable<T, Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['table'] : Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
|
|
646
|
+
table: T['withData'][Arg]['table'];
|
|
647
|
+
result: T['withData'][Arg]['shape'];
|
|
642
648
|
meta: EmptyObject;
|
|
643
649
|
} : never : never : never>;
|
|
644
|
-
declare type
|
|
645
|
-
declare type JoinCallback<T extends QueryBase, Arg extends JoinCallbackArg<T>> = (q: OnQueryBuilder<T, Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
|
|
650
|
+
declare type JoinCallback<T extends QueryBase, Arg extends JoinFirstArg<T>> = (q: OnQueryBuilder<T, Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
|
|
646
651
|
query: QueryData;
|
|
647
652
|
table: T['withData'][Arg]['table'];
|
|
648
653
|
clone(): QueryBase;
|
|
@@ -659,40 +664,40 @@ declare type JoinCallback<T extends QueryBase, Arg extends JoinCallbackArg<T>> =
|
|
|
659
664
|
meta: EmptyObject;
|
|
660
665
|
internal: QueryInternal;
|
|
661
666
|
} : never : Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['table'] : never : never>) => OnQueryBuilder;
|
|
662
|
-
declare type JoinCallbackResult<T extends Query, Arg extends
|
|
667
|
+
declare type JoinCallbackResult<T extends Query, Arg extends JoinFirstArg<T>> = AddQueryJoinedTable<T, Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['table'] : Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
|
|
663
668
|
table: T['withData'][Arg]['table'];
|
|
664
669
|
result: T['withData'][Arg]['shape'];
|
|
665
670
|
meta: EmptyObject;
|
|
666
671
|
} : never : never : never>;
|
|
667
672
|
declare class Join {
|
|
668
|
-
join<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
669
|
-
join<T extends Query, Arg extends
|
|
670
|
-
_join<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
671
|
-
_join<T extends Query, Arg extends
|
|
672
|
-
innerJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
673
|
-
innerJoin<T extends Query, Arg extends
|
|
674
|
-
_innerJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
675
|
-
_innerJoin<T extends Query, Arg extends
|
|
676
|
-
leftJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
677
|
-
leftJoin<T extends Query, Arg extends
|
|
678
|
-
_leftJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
679
|
-
_leftJoin<T extends Query, Arg extends
|
|
680
|
-
leftOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
681
|
-
leftOuterJoin<T extends Query, Arg extends
|
|
682
|
-
_leftOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
683
|
-
_leftOuterJoin<T extends Query, Arg extends
|
|
684
|
-
rightJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
685
|
-
rightJoin<T extends Query, Arg extends
|
|
686
|
-
_rightJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
687
|
-
_rightJoin<T extends Query, Arg extends
|
|
688
|
-
rightOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
689
|
-
rightOuterJoin<T extends Query, Arg extends
|
|
690
|
-
_rightOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
691
|
-
_rightOuterJoin<T extends Query, Arg extends
|
|
692
|
-
fullOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
693
|
-
fullOuterJoin<T extends Query, Arg extends
|
|
694
|
-
_fullOuterJoin<T extends Query, Args extends JoinArgs<T>>(this: T, ...args: Args): JoinResult<T,
|
|
695
|
-
_fullOuterJoin<T extends Query, Arg extends
|
|
673
|
+
join<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
674
|
+
join<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
675
|
+
_join<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
676
|
+
_join<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
677
|
+
innerJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
678
|
+
innerJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
679
|
+
_innerJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
680
|
+
_innerJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
681
|
+
leftJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
682
|
+
leftJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
683
|
+
_leftJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
684
|
+
_leftJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
685
|
+
leftOuterJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
686
|
+
leftOuterJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
687
|
+
_leftOuterJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
688
|
+
_leftOuterJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
689
|
+
rightJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
690
|
+
rightJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
691
|
+
_rightJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
692
|
+
_rightJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
693
|
+
rightOuterJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
694
|
+
rightOuterJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
695
|
+
_rightOuterJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
696
|
+
_rightOuterJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
697
|
+
fullOuterJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
698
|
+
fullOuterJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
699
|
+
_fullOuterJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, Arg>;
|
|
700
|
+
_fullOuterJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinCallbackResult<T, Arg>;
|
|
696
701
|
}
|
|
697
702
|
declare type OnArgs<Q extends {
|
|
698
703
|
selectable: SelectableBase;
|
|
@@ -1565,15 +1570,15 @@ declare type QueryThen<ReturnType extends QueryReturnType, Result extends Column
|
|
|
1565
1570
|
} ? ThenResult<Result['value']['type']> : never : ReturnType extends 'rows' ? ThenResult<ColumnShapeOutput<Result>[keyof Result][][]> : ReturnType extends 'pluck' ? Result extends {
|
|
1566
1571
|
pluck: ColumnType;
|
|
1567
1572
|
} ? ThenResult<Result['pluck']['type'][]> : never : ReturnType extends 'rowCount' ? ThenResult<number> : ReturnType extends 'void' ? ThenResult<void> : never;
|
|
1568
|
-
declare type AddQuerySelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase> = T['meta']['hasSelect'] extends true ?
|
|
1569
|
-
|
|
1570
|
-
then: QueryThen<T['returnType'], Spread<[T['result'], Result]>>;
|
|
1571
|
-
} : Omit<T, 'result' | 'then'> & {
|
|
1572
|
-
meta: {
|
|
1573
|
+
declare type AddQuerySelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase> = T['meta']['hasSelect'] extends true ? MergeSelect<T, Result> : {
|
|
1574
|
+
[K in keyof T]: K extends 'meta' ? T['meta'] & {
|
|
1573
1575
|
hasSelect: true;
|
|
1574
|
-
};
|
|
1575
|
-
|
|
1576
|
-
|
|
1576
|
+
} : K extends 'result' ? Result : K extends 'then' ? QueryThen<T['returnType'], Result> : T[K];
|
|
1577
|
+
};
|
|
1578
|
+
declare type MergeSelect<T extends Pick<Query, 'result' | 'then' | 'returnType' | 'meta'>, Result extends ColumnsShapeBase, Merged extends ColumnsShapeBase = {
|
|
1579
|
+
[K in keyof T['result']]: K extends keyof Result ? unknown : T['result'][K];
|
|
1580
|
+
} & Result> = {
|
|
1581
|
+
[K in keyof T]: K extends 'result' ? Merged : K extends 'then' ? QueryThen<T['returnType'], Merged> : T[K];
|
|
1577
1582
|
};
|
|
1578
1583
|
declare type SetQueryReturns<T extends Query, R extends QueryReturnType> = Omit<T, 'returnType' | 'then'> & {
|
|
1579
1584
|
returnType: R;
|
|
@@ -3591,4 +3596,4 @@ declare const setQueryObjectValue: <T extends {
|
|
|
3591
3596
|
query: QueryData;
|
|
3592
3597
|
}>(q: T, object: string, key: string, value: unknown) => T;
|
|
3593
3598
|
|
|
3594
|
-
export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators, ColumnParser, ColumnType, ColumnTypes, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeWithTimeZoneBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTable, ForeignKeyTableWithColumns, From, FromArgs, FromResult, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback,
|
|
3599
|
+
export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators, ColumnParser, ColumnType, ColumnTypes, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeWithTimeZoneBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTable, ForeignKeyTableWithColumns, From, FromArgs, FromResult, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinResult, JoinedTablesBase, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operators, OrchidInternalError, OrderArg, OrderItem, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, PormError, Query, QueryArraysResult, QueryBase, QueryCallbacks, QueryData, QueryError, QueryErrorName, QueryGet, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QueryThen, QueryUpsertOrCreate, QueryWithTable, RawMethods, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationQueryData, RelationsBase, Select, SelectAgg, SelectArg, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SelectableFromShape, SerialColumn, SerialColumnData, SetQueryJoinedTables, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWindows, SetQueryWith, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, Sql, StringColumn, StringExpression, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimeWithTimeZoneColumn, TimestampColumn, TimestampWithTimeZoneColumn, ToSqlCtx, ToSqlOptions, Transaction, TransactionAdapter, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertData, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, 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, addParserToQuery, addQueryOn, addQueryOrOn, addWhere, addWhereIn, addWhereNot, aggregate1FunctionNames, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, utils as columnUtils, columnsByType, columnsShapeToCode, createDb, defaultsKey, foreignKeyArgsToCode, foreignKeyArgumentToCode, foreignKeyToCode, getClonedQueryData, getColumnTypes, getQueryAs, getRaw, getShapeFromSelect, getTableData, getValueKey, handleResult, indexToCode, instantiateColumn, isQueryReturnsAll, isRequiredRelationKey, jsonTypes, logColors, logParamToLogObject, makeRegexToFindInSql, makeSql, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, relationQueryKey, resetTableData, setQueryObjectValue, toSql, toSqlCacheKey };
|
package/dist/index.js
CHANGED
|
@@ -2529,8 +2529,22 @@ const pushInsertSql = (ctx, table, query, quotedAs) => {
|
|
|
2529
2529
|
} else {
|
|
2530
2530
|
ctx.sql.push(getRaw(expr, ctx.values));
|
|
2531
2531
|
}
|
|
2532
|
-
} else {
|
|
2533
|
-
|
|
2532
|
+
} else if (type === "merge") {
|
|
2533
|
+
const { indexes } = table.internal;
|
|
2534
|
+
const quotedUniques = query.columns.reduce((arr, key, i) => {
|
|
2535
|
+
var _a2, _b2;
|
|
2536
|
+
const unique = ((_b2 = ((_a2 = shape[key]) == null ? void 0 : _a2.data).indexes) == null ? void 0 : _b2.some(
|
|
2537
|
+
(index) => index.unique
|
|
2538
|
+
)) || indexes.some(
|
|
2539
|
+
(index) => index.columns.some(
|
|
2540
|
+
(item) => "column" in item && item.column === key
|
|
2541
|
+
)
|
|
2542
|
+
);
|
|
2543
|
+
if (unique)
|
|
2544
|
+
arr.push(quotedColumns[i]);
|
|
2545
|
+
return arr;
|
|
2546
|
+
}, []);
|
|
2547
|
+
ctx.sql.push(`(${quotedUniques.join(", ")})`);
|
|
2534
2548
|
}
|
|
2535
2549
|
if (type === "ignore") {
|
|
2536
2550
|
ctx.sql.push("DO NOTHING");
|
|
@@ -4936,36 +4950,39 @@ class Where {
|
|
|
4936
4950
|
_orWhereNotIn(arg, values) {
|
|
4937
4951
|
return addWhereIn(this, false, arg, values, true);
|
|
4938
4952
|
}
|
|
4939
|
-
whereExists(...args) {
|
|
4940
|
-
return this.clone()._whereExists(...args);
|
|
4953
|
+
whereExists(arg, ...args) {
|
|
4954
|
+
return this.clone()._whereExists(arg, ...args);
|
|
4941
4955
|
}
|
|
4942
4956
|
_whereExists(...args) {
|
|
4943
4957
|
return this._where({ EXISTS: args });
|
|
4944
4958
|
}
|
|
4945
|
-
orWhereExists(...args) {
|
|
4946
|
-
return this.clone()._orWhereExists(...args);
|
|
4959
|
+
orWhereExists(arg, ...args) {
|
|
4960
|
+
return this.clone()._orWhereExists(arg, ...args);
|
|
4947
4961
|
}
|
|
4948
4962
|
_orWhereExists(...args) {
|
|
4949
4963
|
return this._or({ EXISTS: args });
|
|
4950
4964
|
}
|
|
4951
|
-
whereNotExists(...args) {
|
|
4952
|
-
return this.clone()._whereNotExists(...args);
|
|
4965
|
+
whereNotExists(arg, ...args) {
|
|
4966
|
+
return this.clone()._whereNotExists(arg, ...args);
|
|
4953
4967
|
}
|
|
4954
4968
|
_whereNotExists(...args) {
|
|
4955
4969
|
return this._whereNot({ EXISTS: args });
|
|
4956
4970
|
}
|
|
4957
|
-
orWhereNotExists(...args) {
|
|
4958
|
-
return this.clone()._orWhereNotExists(...args);
|
|
4971
|
+
orWhereNotExists(arg, ...args) {
|
|
4972
|
+
return this.clone()._orWhereNotExists(arg, ...args);
|
|
4959
4973
|
}
|
|
4960
4974
|
_orWhereNotExists(...args) {
|
|
4961
4975
|
return this._orNot({ EXISTS: args });
|
|
4962
4976
|
}
|
|
4963
4977
|
}
|
|
4978
|
+
const emptyInternal = {
|
|
4979
|
+
indexes: []
|
|
4980
|
+
};
|
|
4964
4981
|
class WhereQueryBuilder extends Where {
|
|
4965
4982
|
constructor(q, { shape, joinedShapes }) {
|
|
4966
4983
|
super();
|
|
4967
4984
|
this.withData = orchidCore.emptyObject;
|
|
4968
|
-
this.internal =
|
|
4985
|
+
this.internal = emptyInternal;
|
|
4969
4986
|
this.table = typeof q === "object" ? q.table : q;
|
|
4970
4987
|
this.shape = shape;
|
|
4971
4988
|
this.query = {
|
|
@@ -5985,7 +6002,10 @@ class Db {
|
|
|
5985
6002
|
this.whereQueryBuilder = WhereQueryBuilder;
|
|
5986
6003
|
this.onQueryBuilder = OnQueryBuilder;
|
|
5987
6004
|
var _a, _b;
|
|
5988
|
-
|
|
6005
|
+
const tableData = getTableData();
|
|
6006
|
+
this.internal = {
|
|
6007
|
+
indexes: tableData.indexes
|
|
6008
|
+
};
|
|
5989
6009
|
this.baseQuery = this;
|
|
5990
6010
|
const logger = options.logger || console;
|
|
5991
6011
|
const parsers = {};
|