kysely 0.10.1 → 0.11.3
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/README.md +7 -3
- package/dist/cjs/dialect/dialect-adapter.d.ts +3 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +3 -3
- package/dist/cjs/dialect/mysql/mysql-driver.js +25 -32
- package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -2
- package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -6
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +2 -2
- package/dist/cjs/dialect/postgres/postgres-driver.js +8 -19
- package/dist/cjs/dialect/postgres/postgres-query-compiler.d.ts +3 -0
- package/dist/cjs/dialect/postgres/postgres-query-compiler.js +9 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +7 -0
- package/dist/cjs/dialect/sqlite/sqlite-adapter.js +18 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +64 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.js +33 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +14 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.js +116 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +7 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +44 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +19 -0
- package/dist/cjs/driver/database-connection.d.ts +2 -2
- package/dist/cjs/driver/runtime-driver.js +1 -1
- package/dist/cjs/index.d.ts +46 -30
- package/dist/cjs/index.js +45 -29
- package/dist/cjs/kysely.d.ts +28 -10
- package/dist/cjs/kysely.js +6 -4
- package/dist/cjs/migration/migration.d.ts +1 -1
- package/dist/cjs/migration/migration.js +3 -3
- package/dist/cjs/operation-node/alias-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-view-node.d.ts +1 -0
- package/dist/cjs/operation-node/having-node.d.ts +4 -8
- package/dist/cjs/operation-node/having-node.js +3 -3
- package/dist/cjs/operation-node/join-node.d.ts +6 -9
- package/dist/cjs/operation-node/join-node.js +10 -7
- package/dist/cjs/operation-node/on-node.d.ts +14 -0
- package/dist/cjs/operation-node/on-node.js +28 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +8 -0
- package/dist/cjs/operation-node/operation-node-utils.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +3 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/query-node.d.ts +3 -3
- package/dist/cjs/operation-node/select-query-node.d.ts +4 -4
- package/dist/cjs/operation-node/where-node.d.ts +4 -8
- package/dist/cjs/operation-node/where-node.js +3 -3
- package/dist/cjs/parser/filter-parser.d.ts +1 -0
- package/dist/cjs/parser/filter-parser.js +49 -52
- package/dist/cjs/parser/returning-parser.d.ts +4 -2
- package/dist/cjs/parser/select-parser.d.ts +2 -2
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
- package/dist/cjs/query-builder/delete-result.d.ts +5 -0
- package/dist/cjs/query-builder/delete-result.js +13 -0
- package/dist/cjs/query-builder/expression-builder.d.ts +2 -2
- package/dist/cjs/query-builder/expression-builder.js +1 -1
- package/dist/cjs/query-builder/function-builder.d.ts +5 -5
- package/dist/cjs/query-builder/function-builder.js +3 -3
- package/dist/cjs/query-builder/insert-result.d.ts +27 -0
- package/dist/cjs/query-builder/insert-result.js +35 -0
- package/dist/cjs/query-builder/join-builder.d.ts +3 -0
- package/dist/cjs/query-builder/query-builder.d.ts +95 -81
- package/dist/cjs/query-builder/query-builder.js +38 -41
- package/dist/cjs/query-builder/update-result.d.ts +5 -0
- package/dist/cjs/query-builder/update-result.js +13 -0
- package/dist/cjs/query-compiler/compiled-query.d.ts +5 -0
- package/dist/cjs/query-compiler/compiled-query.js +12 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +24 -13
- package/dist/cjs/query-creator.d.ts +36 -26
- package/dist/cjs/query-creator.js +25 -17
- package/dist/cjs/schema/create-view-builder.d.ts +4 -0
- package/dist/cjs/schema/create-view-builder.js +11 -0
- package/dist/cjs/util/dynamic-import.d.ts +2 -0
- package/dist/cjs/util/dynamic-import.js +32 -0
- package/dist/cjs/util/log.d.ts +10 -8
- package/dist/cjs/util/log.js +29 -9
- package/dist/cjs/util/type-utils.d.ts +4 -15
- package/dist/esm/dialect/dialect-adapter.d.ts +3 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +3 -3
- package/dist/esm/dialect/mysql/mysql-driver.js +26 -33
- package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -2
- package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -6
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +2 -2
- package/dist/esm/dialect/postgres/postgres-driver.js +8 -19
- package/dist/esm/dialect/postgres/postgres-query-compiler.d.ts +3 -0
- package/dist/esm/dialect/postgres/postgres-query-compiler.js +9 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +7 -0
- package/dist/esm/dialect/sqlite/sqlite-adapter.js +14 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +64 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.js +29 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +14 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.js +112 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +7 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +40 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +15 -0
- package/dist/esm/driver/database-connection.d.ts +2 -2
- package/dist/esm/driver/runtime-driver.js +1 -1
- package/dist/esm/index.d.ts +46 -30
- package/dist/esm/index.js +45 -29
- package/dist/esm/kysely.d.ts +28 -10
- package/dist/esm/kysely.js +6 -4
- package/dist/esm/migration/migration.d.ts +1 -1
- package/dist/esm/migration/migration.js +3 -3
- package/dist/esm/operation-node/alias-node.d.ts +1 -1
- package/dist/esm/operation-node/create-view-node.d.ts +1 -0
- package/dist/esm/operation-node/having-node.d.ts +4 -8
- package/dist/esm/operation-node/having-node.js +3 -3
- package/dist/esm/operation-node/join-node.d.ts +6 -9
- package/dist/esm/operation-node/join-node.js +10 -7
- package/dist/esm/operation-node/on-node.d.ts +14 -0
- package/dist/esm/operation-node/on-node.js +25 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +8 -0
- package/dist/esm/operation-node/operation-node-utils.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +3 -0
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/query-node.d.ts +3 -3
- package/dist/esm/operation-node/select-query-node.d.ts +4 -4
- package/dist/esm/operation-node/where-node.d.ts +4 -8
- package/dist/esm/operation-node/where-node.js +3 -3
- package/dist/esm/parser/filter-parser.d.ts +1 -0
- package/dist/esm/parser/filter-parser.js +48 -52
- package/dist/esm/parser/returning-parser.d.ts +4 -2
- package/dist/esm/parser/select-parser.d.ts +2 -2
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
- package/dist/esm/query-builder/delete-result.d.ts +5 -0
- package/dist/esm/query-builder/delete-result.js +9 -0
- package/dist/esm/query-builder/expression-builder.d.ts +2 -2
- package/dist/esm/query-builder/expression-builder.js +1 -1
- package/dist/esm/query-builder/function-builder.d.ts +5 -5
- package/dist/esm/query-builder/function-builder.js +3 -3
- package/dist/esm/query-builder/insert-result.d.ts +27 -0
- package/dist/esm/query-builder/insert-result.js +31 -0
- package/dist/esm/query-builder/join-builder.d.ts +3 -0
- package/dist/esm/query-builder/query-builder.d.ts +95 -81
- package/dist/esm/query-builder/query-builder.js +38 -41
- package/dist/esm/query-builder/update-result.d.ts +5 -0
- package/dist/esm/query-builder/update-result.js +9 -0
- package/dist/esm/query-compiler/compiled-query.d.ts +5 -0
- package/dist/esm/query-compiler/compiled-query.js +11 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/esm/query-compiler/default-query-compiler.js +24 -13
- package/dist/esm/query-creator.d.ts +36 -26
- package/dist/esm/query-creator.js +25 -17
- package/dist/esm/schema/create-view-builder.d.ts +4 -0
- package/dist/esm/schema/create-view-builder.js +11 -0
- package/dist/esm/util/dynamic-import.d.ts +2 -0
- package/dist/esm/util/dynamic-import.js +27 -0
- package/dist/esm/util/log.d.ts +10 -8
- package/dist/esm/util/log.js +30 -10
- package/dist/esm/util/type-utils.d.ts +4 -15
- package/package.json +3 -1
|
@@ -97,6 +97,7 @@ class OperationNodeTransformer {
|
|
|
97
97
|
DropViewNode: this.transformDropView.bind(this),
|
|
98
98
|
GeneratedAlwaysAsNode: this.transformGeneratedAlwaysAs.bind(this),
|
|
99
99
|
DefaultValueNode: this.transformDefaultValue.bind(this),
|
|
100
|
+
OnNode: this.transformOn.bind(this),
|
|
100
101
|
});
|
|
101
102
|
transformNode = (node) => {
|
|
102
103
|
if (!node) {
|
|
@@ -528,6 +529,7 @@ class OperationNodeTransformer {
|
|
|
528
529
|
kind: 'CreateViewNode',
|
|
529
530
|
name: this.transformNode(node.name),
|
|
530
531
|
orReplace: node.orReplace,
|
|
532
|
+
ifNotExists: node.ifNotExists,
|
|
531
533
|
materialized: node.materialized,
|
|
532
534
|
columns: this.transformNodeList(node.columns),
|
|
533
535
|
as: this.transformNode(node.as),
|
|
@@ -554,6 +556,12 @@ class OperationNodeTransformer {
|
|
|
554
556
|
defaultValue: this.transformNode(node.defaultValue),
|
|
555
557
|
};
|
|
556
558
|
}
|
|
559
|
+
transformOn(node) {
|
|
560
|
+
return {
|
|
561
|
+
kind: 'OnNode',
|
|
562
|
+
on: this.transformNode(node.on),
|
|
563
|
+
};
|
|
564
|
+
}
|
|
557
565
|
transformDataType(node) {
|
|
558
566
|
// An Object.freezed leaf node. No need to clone.
|
|
559
567
|
return node;
|
|
@@ -14,4 +14,4 @@ import { ValueNode } from './value-node.js';
|
|
|
14
14
|
export declare type ReferenceExpressionNode = ColumnNode | ReferenceNode | SelectQueryNode | RawNode;
|
|
15
15
|
export declare type ValueExpressionNode = ValueNode | ValueListNode | PrimitiveValueListNode | ReferenceExpressionNode;
|
|
16
16
|
export declare type TableExpressionNode = TableNode | AliasNode;
|
|
17
|
-
export declare type FilterExpressionNode = FilterNode | AndNode | OrNode | ParensNode;
|
|
17
|
+
export declare type FilterExpressionNode = FilterNode | AndNode | OrNode | ParensNode | RawNode;
|
|
@@ -62,9 +62,11 @@ import { CreateViewNode } from './create-view-node.js';
|
|
|
62
62
|
import { DropViewNode } from './drop-view-node.js';
|
|
63
63
|
import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
|
|
64
64
|
import { DefaultValueNode } from './default-value-node.js';
|
|
65
|
+
import { OnNode } from './on-node.js';
|
|
65
66
|
export declare abstract class OperationNodeVisitor {
|
|
66
67
|
#private;
|
|
67
68
|
protected readonly nodeStack: OperationNode[];
|
|
69
|
+
protected get parentNode(): OperationNode | undefined;
|
|
68
70
|
protected readonly visitNode: (node: OperationNode) => void;
|
|
69
71
|
protected abstract visitSelectQuery(node: SelectQueryNode): void;
|
|
70
72
|
protected abstract visitSelection(node: SelectionNode): void;
|
|
@@ -129,4 +131,5 @@ export declare abstract class OperationNodeVisitor {
|
|
|
129
131
|
protected abstract visitDropView(node: DropViewNode): void;
|
|
130
132
|
protected abstract visitGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): void;
|
|
131
133
|
protected abstract visitDefaultValue(node: DefaultValueNode): void;
|
|
134
|
+
protected abstract visitOn(node: OnNode): void;
|
|
132
135
|
}
|
|
@@ -4,6 +4,9 @@ exports.OperationNodeVisitor = void 0;
|
|
|
4
4
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
5
|
class OperationNodeVisitor {
|
|
6
6
|
nodeStack = [];
|
|
7
|
+
get parentNode() {
|
|
8
|
+
return this.nodeStack[this.nodeStack.length - 2];
|
|
9
|
+
}
|
|
7
10
|
#visitors = (0, object_utils_js_1.freeze)({
|
|
8
11
|
AliasNode: this.visitAlias.bind(this),
|
|
9
12
|
ColumnNode: this.visitColumn.bind(this),
|
|
@@ -68,6 +71,7 @@ class OperationNodeVisitor {
|
|
|
68
71
|
DropViewNode: this.visitDropView.bind(this),
|
|
69
72
|
GeneratedAlwaysAsNode: this.visitGeneratedAlwaysAs.bind(this),
|
|
70
73
|
DefaultValueNode: this.visitDefaultValue.bind(this),
|
|
74
|
+
OnNode: this.visitOn.bind(this),
|
|
71
75
|
});
|
|
72
76
|
visitNode = (node) => {
|
|
73
77
|
this.nodeStack.push(node);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'UnionNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedAlwaysAsNode' | 'DefaultValueNode';
|
|
1
|
+
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'UnionNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedAlwaysAsNode' | 'DefaultValueNode' | 'OnNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -2,10 +2,10 @@ import { InsertQueryNode } from './insert-query-node.js';
|
|
|
2
2
|
import { SelectQueryNode } from './select-query-node.js';
|
|
3
3
|
import { UpdateQueryNode } from './update-query-node.js';
|
|
4
4
|
import { DeleteQueryNode } from './delete-query-node.js';
|
|
5
|
-
import { WhereChildNode } from './where-node.js';
|
|
6
5
|
import { JoinNode } from './join-node.js';
|
|
7
6
|
import { SelectionNode } from './selection-node.js';
|
|
8
7
|
import { OperationNode } from './operation-node.js';
|
|
8
|
+
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
9
9
|
export declare type QueryNode = SelectQueryNode | DeleteQueryNode | InsertQueryNode | UpdateQueryNode;
|
|
10
10
|
export declare type MutatingQueryNode = DeleteQueryNode | InsertQueryNode | UpdateQueryNode;
|
|
11
11
|
export declare type FilterableQueryNode = SelectQueryNode | DeleteQueryNode | UpdateQueryNode;
|
|
@@ -16,8 +16,8 @@ export declare const QueryNode: Readonly<{
|
|
|
16
16
|
is(node: OperationNode): node is QueryNode;
|
|
17
17
|
isMutating(node: OperationNode): node is MutatingQueryNode;
|
|
18
18
|
isFilterable(node: OperationNode): node is FilterableQueryNode;
|
|
19
|
-
cloneWithWhere<T extends FilterableQueryNode>(node: T, filter:
|
|
20
|
-
cloneWithOrWhere<T_1 extends FilterableQueryNode>(node: T_1, filter:
|
|
19
|
+
cloneWithWhere<T extends FilterableQueryNode>(node: T, filter: FilterExpressionNode): T;
|
|
20
|
+
cloneWithOrWhere<T_1 extends FilterableQueryNode>(node: T_1, filter: FilterExpressionNode): T_1;
|
|
21
21
|
cloneWithJoin<T_2 extends FilterableQueryNode>(node: T_2, join: JoinNode): T_2;
|
|
22
22
|
cloneWithReturning<T_3 extends MutatingQueryNode>(node: T_3, selections: ReadonlyArray<SelectionNode>): T_3;
|
|
23
23
|
}>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { FromNode } from './from-node.js';
|
|
2
2
|
import { GroupByItemNode } from './group-by-item-node.js';
|
|
3
3
|
import { GroupByNode } from './group-by-node.js';
|
|
4
|
-
import { HavingNode
|
|
4
|
+
import { HavingNode } from './having-node.js';
|
|
5
5
|
import { JoinNode } from './join-node.js';
|
|
6
6
|
import { LimitNode } from './limit-node.js';
|
|
7
7
|
import { OffsetNode } from './offset-node.js';
|
|
8
8
|
import { OperationNode } from './operation-node.js';
|
|
9
|
-
import { TableExpressionNode } from './operation-node-utils.js';
|
|
9
|
+
import { FilterExpressionNode, TableExpressionNode } from './operation-node-utils.js';
|
|
10
10
|
import { OrderByItemNode } from './order-by-item-node.js';
|
|
11
11
|
import { OrderByNode } from './order-by-node.js';
|
|
12
12
|
import { SelectionNode } from './selection-node.js';
|
|
@@ -44,8 +44,8 @@ export declare const SelectQueryNode: Readonly<{
|
|
|
44
44
|
cloneWithGroupByItems(selectNode: SelectQueryNode, items: ReadonlyArray<GroupByItemNode>): SelectQueryNode;
|
|
45
45
|
cloneWithLimit(selectNode: SelectQueryNode, limit: LimitNode): SelectQueryNode;
|
|
46
46
|
cloneWithOffset(selectNode: SelectQueryNode, offset: OffsetNode): SelectQueryNode;
|
|
47
|
-
cloneWithHaving(selectNode: SelectQueryNode, filter:
|
|
48
|
-
cloneWithOrHaving(selectNode: SelectQueryNode, filter:
|
|
47
|
+
cloneWithHaving(selectNode: SelectQueryNode, filter: FilterExpressionNode): SelectQueryNode;
|
|
48
|
+
cloneWithOrHaving(selectNode: SelectQueryNode, filter: FilterExpressionNode): SelectQueryNode;
|
|
49
49
|
cloneWithDistinct(selectNode: SelectQueryNode): SelectQueryNode;
|
|
50
50
|
cloneWithUnion(selectNode: SelectQueryNode, union: UnionNode): SelectQueryNode;
|
|
51
51
|
}>;
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FilterNode } from './filter-node.js';
|
|
1
|
+
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
3
2
|
import { OperationNode } from './operation-node.js';
|
|
4
|
-
import { OrNode } from './or-node.js';
|
|
5
|
-
import { ParensNode } from './parens-node.js';
|
|
6
|
-
export declare type WhereChildNode = FilterNode | AndNode | OrNode | ParensNode;
|
|
7
3
|
export interface WhereNode extends OperationNode {
|
|
8
4
|
readonly kind: 'WhereNode';
|
|
9
|
-
readonly where:
|
|
5
|
+
readonly where: FilterExpressionNode;
|
|
10
6
|
}
|
|
11
7
|
/**
|
|
12
8
|
* @internal
|
|
13
9
|
*/
|
|
14
10
|
export declare const WhereNode: Readonly<{
|
|
15
11
|
is(node: OperationNode): node is WhereNode;
|
|
16
|
-
create(filter:
|
|
17
|
-
cloneWithFilter(whereNode: WhereNode, op: 'And' | 'Or',
|
|
12
|
+
create(filter: FilterExpressionNode): WhereNode;
|
|
13
|
+
cloneWithFilter(whereNode: WhereNode, op: 'And' | 'Or', filter: FilterExpressionNode): WhereNode;
|
|
18
14
|
}>;
|
|
@@ -17,12 +17,12 @@ exports.WhereNode = (0, object_utils_js_1.freeze)({
|
|
|
17
17
|
where: filter,
|
|
18
18
|
});
|
|
19
19
|
},
|
|
20
|
-
cloneWithFilter(whereNode, op,
|
|
20
|
+
cloneWithFilter(whereNode, op, filter) {
|
|
21
21
|
return (0, object_utils_js_1.freeze)({
|
|
22
22
|
...whereNode,
|
|
23
23
|
where: op === 'And'
|
|
24
|
-
? and_node_js_1.AndNode.create(whereNode.where,
|
|
25
|
-
: or_node_js_1.OrNode.create(whereNode.where,
|
|
24
|
+
? and_node_js_1.AndNode.create(whereNode.where, filter)
|
|
25
|
+
: or_node_js_1.OrNode.create(whereNode.where, filter),
|
|
26
26
|
});
|
|
27
27
|
},
|
|
28
28
|
});
|
|
@@ -12,3 +12,4 @@ export declare function parseOnFilter(ctx: ParseContext, args: any[]): FilterExp
|
|
|
12
12
|
export declare function parseReferenceFilter(ctx: ParseContext, lhs: ReferenceExpression<any, any>, op: FilterOperator, rhs: ReferenceExpression<any, any>): FilterNode;
|
|
13
13
|
export declare function parseExistFilter(ctx: ParseContext, arg: ExistsExpression<any, any>): FilterNode;
|
|
14
14
|
export declare function parseNotExistFilter(ctx: ParseContext, arg: ExistsExpression<any, any>): FilterNode;
|
|
15
|
+
export declare function parseFilter(ctx: ParseContext, type: 'where' | 'having' | 'on', args: any[]): FilterExpressionNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseNotExistFilter = exports.parseExistFilter = exports.parseReferenceFilter = exports.parseOnFilter = exports.parseHavingFilter = exports.parseWhereFilter = void 0;
|
|
3
|
+
exports.parseFilter = exports.parseNotExistFilter = exports.parseExistFilter = exports.parseReferenceFilter = exports.parseOnFilter = exports.parseHavingFilter = exports.parseWhereFilter = void 0;
|
|
4
4
|
const filter_node_js_1 = require("../operation-node/filter-node.js");
|
|
5
5
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
6
6
|
const operation_node_source_js_1 = require("../operation-node/operation-node-source.js");
|
|
@@ -12,39 +12,15 @@ const value_parser_js_1 = require("./value-parser.js");
|
|
|
12
12
|
const select_query_node_js_1 = require("../operation-node/select-query-node.js");
|
|
13
13
|
const value_node_js_1 = require("../operation-node/value-node.js");
|
|
14
14
|
function parseWhereFilter(ctx, args) {
|
|
15
|
-
|
|
16
|
-
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
17
|
-
}
|
|
18
|
-
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
19
|
-
return parseWhereGroup(ctx, args[0]);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
throw new Error(`invalid arguments passed to a where method ${JSON.stringify(args)}`);
|
|
23
|
-
}
|
|
15
|
+
return parseFilter(ctx, 'where', args);
|
|
24
16
|
}
|
|
25
17
|
exports.parseWhereFilter = parseWhereFilter;
|
|
26
18
|
function parseHavingFilter(ctx, args) {
|
|
27
|
-
|
|
28
|
-
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
29
|
-
}
|
|
30
|
-
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
31
|
-
return parseHavingGroup(ctx, args[0]);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
throw new Error(`invalid arguments passed to a having method ${JSON.stringify(args)}`);
|
|
35
|
-
}
|
|
19
|
+
return parseFilter(ctx, 'having', args);
|
|
36
20
|
}
|
|
37
21
|
exports.parseHavingFilter = parseHavingFilter;
|
|
38
22
|
function parseOnFilter(ctx, args) {
|
|
39
|
-
|
|
40
|
-
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
41
|
-
}
|
|
42
|
-
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
43
|
-
return parseOnGroup(ctx, args[0]);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
throw new Error(`invalid arguments passed to an on method ${JSON.stringify(args)}`);
|
|
47
|
-
}
|
|
23
|
+
return parseFilter(ctx, 'on', args);
|
|
48
24
|
}
|
|
49
25
|
exports.parseOnFilter = parseOnFilter;
|
|
50
26
|
function parseReferenceFilter(ctx, lhs, op, rhs) {
|
|
@@ -59,6 +35,25 @@ function parseNotExistFilter(ctx, arg) {
|
|
|
59
35
|
return parseExistExpression(ctx, 'not exists', arg);
|
|
60
36
|
}
|
|
61
37
|
exports.parseNotExistFilter = parseNotExistFilter;
|
|
38
|
+
function parseFilter(ctx, type, args) {
|
|
39
|
+
if (args.length === 3) {
|
|
40
|
+
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
41
|
+
}
|
|
42
|
+
else if (args.length === 1) {
|
|
43
|
+
const arg = args[0];
|
|
44
|
+
if ((0, object_utils_js_1.isFunction)(arg)) {
|
|
45
|
+
return GROUP_PARSERS[type](ctx, arg);
|
|
46
|
+
}
|
|
47
|
+
else if ((0, operation_node_source_js_1.isOperationNodeSource)(arg)) {
|
|
48
|
+
const node = arg.toOperationNode();
|
|
49
|
+
if (raw_node_js_1.RawNode.is(node)) {
|
|
50
|
+
return node;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
throw new Error(`invalid arguments passed to a '${type}' method: ${JSON.stringify(args)}`);
|
|
55
|
+
}
|
|
56
|
+
exports.parseFilter = parseFilter;
|
|
62
57
|
function parseThreeArgFilter(ctx, left, op, right) {
|
|
63
58
|
if ((op === 'is' || op === 'is not') && ((0, object_utils_js_1.isNull)(right) || (0, object_utils_js_1.isBoolean)(right))) {
|
|
64
59
|
return parseIsFilter(ctx, left, op, right);
|
|
@@ -79,30 +74,6 @@ function parseFilterOperator(op) {
|
|
|
79
74
|
}
|
|
80
75
|
throw new Error(`invalid comparison operator ${JSON.stringify(op)} passed to a filter method`);
|
|
81
76
|
}
|
|
82
|
-
function parseWhereGroup(ctx, callback) {
|
|
83
|
-
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
84
|
-
const queryNode = query.toOperationNode();
|
|
85
|
-
if (!queryNode.where) {
|
|
86
|
-
throw new Error('no `where*` methods called insided a group callback');
|
|
87
|
-
}
|
|
88
|
-
return parens_node_js_1.ParensNode.create(queryNode.where.where);
|
|
89
|
-
}
|
|
90
|
-
function parseHavingGroup(ctx, callback) {
|
|
91
|
-
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
92
|
-
const queryNode = query.toOperationNode();
|
|
93
|
-
if (!queryNode.having) {
|
|
94
|
-
throw new Error('no `having*` methods called insided a group callback');
|
|
95
|
-
}
|
|
96
|
-
return parens_node_js_1.ParensNode.create(queryNode.having.having);
|
|
97
|
-
}
|
|
98
|
-
function parseOnGroup(ctx, callback) {
|
|
99
|
-
const joinBuilder = callback(ctx.createJoinBuilder('InnerJoin', 'table'));
|
|
100
|
-
const joinNode = joinBuilder.toOperationNode();
|
|
101
|
-
if (!joinNode.on) {
|
|
102
|
-
throw new Error('no `on*` methods called insided a group callback');
|
|
103
|
-
}
|
|
104
|
-
return parens_node_js_1.ParensNode.create(joinNode.on);
|
|
105
|
-
}
|
|
106
77
|
function parseExistExpression(ctx, type, arg) {
|
|
107
78
|
const node = (0, object_utils_js_1.isFunction)(arg)
|
|
108
79
|
? arg(ctx.createExpressionBuilder()).toOperationNode()
|
|
@@ -112,3 +83,29 @@ function parseExistExpression(ctx, type, arg) {
|
|
|
112
83
|
}
|
|
113
84
|
return filter_node_js_1.FilterNode.create(undefined, operator_node_js_1.OperatorNode.create(type), node);
|
|
114
85
|
}
|
|
86
|
+
const GROUP_PARSERS = (0, object_utils_js_1.freeze)({
|
|
87
|
+
where(ctx, callback) {
|
|
88
|
+
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
89
|
+
const queryNode = query.toOperationNode();
|
|
90
|
+
if (!queryNode.where) {
|
|
91
|
+
throw new Error('no `where` methods called insided a group callback');
|
|
92
|
+
}
|
|
93
|
+
return parens_node_js_1.ParensNode.create(queryNode.where.where);
|
|
94
|
+
},
|
|
95
|
+
having(ctx, callback) {
|
|
96
|
+
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
97
|
+
const queryNode = query.toOperationNode();
|
|
98
|
+
if (!queryNode.having) {
|
|
99
|
+
throw new Error('no `having` methods called insided a group callback');
|
|
100
|
+
}
|
|
101
|
+
return parens_node_js_1.ParensNode.create(queryNode.having.having);
|
|
102
|
+
},
|
|
103
|
+
on(ctx, callback) {
|
|
104
|
+
const joinBuilder = callback(ctx.createJoinBuilder('InnerJoin', 'table'));
|
|
105
|
+
const joinNode = joinBuilder.toOperationNode();
|
|
106
|
+
if (!joinNode.on) {
|
|
107
|
+
throw new Error('no `on` methods called insided a group callback');
|
|
108
|
+
}
|
|
109
|
+
return parens_node_js_1.ParensNode.create(joinNode.on.on);
|
|
110
|
+
},
|
|
111
|
+
});
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { DeleteResult } from '../query-builder/delete-result.js';
|
|
2
|
+
import { InsertResult } from '../query-builder/insert-result.js';
|
|
1
3
|
import { QueryBuilder } from '../query-builder/query-builder.js';
|
|
2
|
-
import {
|
|
4
|
+
import { UpdateResult } from '../query-builder/update-result.js';
|
|
3
5
|
import { Selection } from './select-parser.js';
|
|
4
6
|
/**
|
|
5
7
|
* `returning` method output query builder type
|
|
6
8
|
*/
|
|
7
|
-
export declare type QueryBuilderWithReturning<DB, TB extends keyof DB, O, S> = QueryBuilder<DB, TB, O extends
|
|
9
|
+
export declare type QueryBuilderWithReturning<DB, TB extends keyof DB, O, S> = QueryBuilder<DB, TB, O extends InsertResult ? Selection<DB, TB, S> : O extends DeleteResult ? Selection<DB, TB, S> : O extends UpdateResult ? Selection<DB, TB, S> : O & Selection<DB, TB, S>>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AliasedRawBuilder } from '../raw-builder/raw-builder.js';
|
|
2
2
|
import { AliasedQueryBuilder, QueryBuilder } from '../query-builder/query-builder.js';
|
|
3
3
|
import { SelectionNode } from '../operation-node/selection-node.js';
|
|
4
|
-
import { AliasedQueryBuilderFactory, AliasedRawBuilderFactory, AnyAliasedColumn, AnyAliasedColumnWithTable, AnyAliasedQueryBuilder, AnyAliasedRawBuilder, AnyColumn, AnyColumnWithTable,
|
|
4
|
+
import { AliasedQueryBuilderFactory, AliasedRawBuilderFactory, AnyAliasedColumn, AnyAliasedColumnWithTable, AnyAliasedQueryBuilder, AnyAliasedRawBuilder, AnyColumn, AnyColumnWithTable, RowType, ValueType } from '../util/type-utils.js';
|
|
5
5
|
import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
|
|
6
6
|
import { ParseContext } from './parse-context.js';
|
|
7
7
|
/**
|
|
@@ -13,7 +13,7 @@ export declare type SelectExpressionOrList<DB, TB extends keyof DB> = SelectExpr
|
|
|
13
13
|
* Given a selection expression returns a query builder type that
|
|
14
14
|
* has the selection.
|
|
15
15
|
*/
|
|
16
|
-
export declare type QueryBuilderWithSelection<DB, TB extends keyof DB, O, S> = QueryBuilder<DB, TB, O
|
|
16
|
+
export declare type QueryBuilderWithSelection<DB, TB extends keyof DB, O, S> = QueryBuilder<DB, TB, O & Selection<DB, TB, S>>;
|
|
17
17
|
/**
|
|
18
18
|
* `selectAll` output query builder type.
|
|
19
19
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { QueryResult } from '../../driver/database-connection.js';
|
|
2
|
-
import { UnknownRow } from '../../index.js';
|
|
3
2
|
import { RootOperationNode } from '../../query-compiler/query-compiler.js';
|
|
3
|
+
import { UnknownRow } from '../../util/type-utils.js';
|
|
4
4
|
import { KyselyPlugin, PluginTransformQueryArgs, PluginTransformResultArgs } from '../kysely-plugin.js';
|
|
5
5
|
/**
|
|
6
6
|
* Transforms all ValueNodes to immediate.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteResult = void 0;
|
|
4
|
+
class DeleteResult {
|
|
5
|
+
#numDeletedRows;
|
|
6
|
+
constructor(numDeletedRows) {
|
|
7
|
+
this.#numDeletedRows = numDeletedRows;
|
|
8
|
+
}
|
|
9
|
+
get numDeletedRows() {
|
|
10
|
+
return this.#numDeletedRows;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.DeleteResult = DeleteResult;
|
|
@@ -26,7 +26,7 @@ export declare class ExpressionBuilder<DB, TB extends keyof DB> {
|
|
|
26
26
|
* .execute()
|
|
27
27
|
* ```
|
|
28
28
|
*
|
|
29
|
-
* The generated SQL (
|
|
29
|
+
* The generated SQL (PostgreSQL):
|
|
30
30
|
*
|
|
31
31
|
* ```sql
|
|
32
32
|
* select "person"."id", count("pet"."id") as "pet_count"
|
|
@@ -62,7 +62,7 @@ export declare class ExpressionBuilder<DB, TB extends keyof DB> {
|
|
|
62
62
|
* console.log(result[0].owner_name)
|
|
63
63
|
* ```
|
|
64
64
|
*
|
|
65
|
-
* The generated SQL (
|
|
65
|
+
* The generated SQL (PostgreSQL):
|
|
66
66
|
*
|
|
67
67
|
* ```sql
|
|
68
68
|
* select
|
|
@@ -19,7 +19,7 @@ import { RawBuilder } from '../raw-builder/raw-builder.js';
|
|
|
19
19
|
* .execute()
|
|
20
20
|
* ```
|
|
21
21
|
*
|
|
22
|
-
* The generated SQL (
|
|
22
|
+
* The generated SQL (PostgreSQL):
|
|
23
23
|
*
|
|
24
24
|
* ```sql
|
|
25
25
|
* select "person"."id", count("pet"."id") as "pet_count"
|
|
@@ -66,7 +66,7 @@ export declare class FunctionBuilder<DB, TB extends keyof DB> {
|
|
|
66
66
|
* Calls the `sum` function for the column given as the argument.
|
|
67
67
|
*
|
|
68
68
|
* If this is used in a `select` statement the type of the selected expression
|
|
69
|
-
* will be `number | string |
|
|
69
|
+
* will be `number | string | bigint` by default. This is because Kysely can't
|
|
70
70
|
* know the type the db driver outputs. Sometimes the output can be larger than
|
|
71
71
|
* the largest javascript number and a string is returned instead. Most drivers
|
|
72
72
|
* allow you to configure the output type of large numbers and Kysely can't
|
|
@@ -83,12 +83,12 @@ export declare class FunctionBuilder<DB, TB extends keyof DB> {
|
|
|
83
83
|
* .execute()
|
|
84
84
|
* ```
|
|
85
85
|
*/
|
|
86
|
-
sum<O extends number | string |
|
|
86
|
+
sum<O extends number | string | bigint, C extends StringReference<DB, TB> = any>(column: C): RawBuilder<O>;
|
|
87
87
|
/**
|
|
88
88
|
* Calls the `count` function for the column given as the argument.
|
|
89
89
|
*
|
|
90
90
|
* If this is used in a `select` statement the type of the selected expression
|
|
91
|
-
* will be `number | string |
|
|
91
|
+
* will be `number | string |bigint` by default. This is because Kysely can't
|
|
92
92
|
* know the type the db driver outputs. Sometimes the output can be larger than
|
|
93
93
|
* the largest javascript number and a string is returned instead. Most drivers
|
|
94
94
|
* allow you to configure the output type of large numbers and Kysely can't
|
|
@@ -105,7 +105,7 @@ export declare class FunctionBuilder<DB, TB extends keyof DB> {
|
|
|
105
105
|
* .execute()
|
|
106
106
|
* ```
|
|
107
107
|
*/
|
|
108
|
-
count<O extends number | string |
|
|
108
|
+
count<O extends number | string | bigint, C extends StringReference<DB, TB> = any>(column: C): RawBuilder<O>;
|
|
109
109
|
}
|
|
110
110
|
export interface FunctionBuilderProps {
|
|
111
111
|
readonly executor: QueryExecutor;
|
|
@@ -22,7 +22,7 @@ const query_id_js_1 = require("../util/query-id.js");
|
|
|
22
22
|
* .execute()
|
|
23
23
|
* ```
|
|
24
24
|
*
|
|
25
|
-
* The generated SQL (
|
|
25
|
+
* The generated SQL (PostgreSQL):
|
|
26
26
|
*
|
|
27
27
|
* ```sql
|
|
28
28
|
* select "person"."id", count("pet"."id") as "pet_count"
|
|
@@ -82,7 +82,7 @@ class FunctionBuilder {
|
|
|
82
82
|
* Calls the `sum` function for the column given as the argument.
|
|
83
83
|
*
|
|
84
84
|
* If this is used in a `select` statement the type of the selected expression
|
|
85
|
-
* will be `number | string |
|
|
85
|
+
* will be `number | string | bigint` by default. This is because Kysely can't
|
|
86
86
|
* know the type the db driver outputs. Sometimes the output can be larger than
|
|
87
87
|
* the largest javascript number and a string is returned instead. Most drivers
|
|
88
88
|
* allow you to configure the output type of large numbers and Kysely can't
|
|
@@ -106,7 +106,7 @@ class FunctionBuilder {
|
|
|
106
106
|
* Calls the `count` function for the column given as the argument.
|
|
107
107
|
*
|
|
108
108
|
* If this is used in a `select` statement the type of the selected expression
|
|
109
|
-
* will be `number | string |
|
|
109
|
+
* will be `number | string |bigint` by default. This is because Kysely can't
|
|
110
110
|
* know the type the db driver outputs. Sometimes the output can be larger than
|
|
111
111
|
* the largest javascript number and a string is returned instead. Most drivers
|
|
112
112
|
* allow you to configure the output type of large numbers and Kysely can't
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The result of an insert query.
|
|
3
|
+
*
|
|
4
|
+
* If the table has an auto incrementing primary key {@link insertId} will hold
|
|
5
|
+
* the generated id on dialects that support it. For example PostgreSQL doesn't
|
|
6
|
+
* return the id by default and {@link insertId} is undefined. On PostgreSQL you
|
|
7
|
+
* need to use {@link QueryBuilder.returning} or {@link QueryBuilder.returningAll}
|
|
8
|
+
* to get out the inserted id.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const result = await db
|
|
13
|
+
* .insertInto('person')
|
|
14
|
+
* .values(person)
|
|
15
|
+
* .executeTakeFirst()
|
|
16
|
+
*
|
|
17
|
+
* console.log(result.insertId)
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class InsertResult {
|
|
21
|
+
#private;
|
|
22
|
+
constructor(insertId: bigint | undefined);
|
|
23
|
+
/**
|
|
24
|
+
* The auto incrementing primary key
|
|
25
|
+
*/
|
|
26
|
+
get insertId(): bigint | undefined;
|
|
27
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InsertResult = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The result of an insert query.
|
|
6
|
+
*
|
|
7
|
+
* If the table has an auto incrementing primary key {@link insertId} will hold
|
|
8
|
+
* the generated id on dialects that support it. For example PostgreSQL doesn't
|
|
9
|
+
* return the id by default and {@link insertId} is undefined. On PostgreSQL you
|
|
10
|
+
* need to use {@link QueryBuilder.returning} or {@link QueryBuilder.returningAll}
|
|
11
|
+
* to get out the inserted id.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const result = await db
|
|
16
|
+
* .insertInto('person')
|
|
17
|
+
* .values(person)
|
|
18
|
+
* .executeTakeFirst()
|
|
19
|
+
*
|
|
20
|
+
* console.log(result.insertId)
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
class InsertResult {
|
|
24
|
+
#insertId;
|
|
25
|
+
constructor(insertId) {
|
|
26
|
+
this.#insertId = insertId;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The auto incrementing primary key
|
|
30
|
+
*/
|
|
31
|
+
get insertId() {
|
|
32
|
+
return this.#insertId;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.InsertResult = InsertResult;
|
|
@@ -4,6 +4,7 @@ import { ExistsExpression, FilterOperator } from '../parser/filter-parser.js';
|
|
|
4
4
|
import { ParseContext } from '../parser/parse-context.js';
|
|
5
5
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
6
|
import { ValueExpressionOrList } from '../parser/value-parser.js';
|
|
7
|
+
import { AnyRawBuilder } from '../util/type-utils.js';
|
|
7
8
|
export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
|
|
8
9
|
#private;
|
|
9
10
|
constructor(props: JoinBuilderProps);
|
|
@@ -15,6 +16,7 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
15
16
|
*/
|
|
16
17
|
on<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
17
18
|
on(grouper: (qb: JoinBuilder<DB, TB>) => JoinBuilder<DB, TB>): JoinBuilder<DB, TB>;
|
|
19
|
+
on(raw: AnyRawBuilder): JoinBuilder<DB, TB>;
|
|
18
20
|
/**
|
|
19
21
|
* Just like {@link QueryBuilder.orWhere} but adds an item to the join's
|
|
20
22
|
* `on` clause instead.
|
|
@@ -23,6 +25,7 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
23
25
|
*/
|
|
24
26
|
orOn<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
25
27
|
orOn(grouper: (qb: JoinBuilder<DB, TB>) => JoinBuilder<DB, TB>): JoinBuilder<DB, TB>;
|
|
28
|
+
orOn(raw: AnyRawBuilder): JoinBuilder<DB, TB>;
|
|
26
29
|
/**
|
|
27
30
|
* Just like {@link QueryBuilder.whereRef} but adds an item to the join's
|
|
28
31
|
* `on` clause instead.
|