kysely 0.7.2 → 0.7.6
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 +9 -5
- package/dist/cjs/dialect/dialect-adapter.d.ts +11 -9
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/kysely.d.ts +2 -2
- package/dist/cjs/kysely.js +9 -7
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -1
- package/dist/cjs/operation-node/create-table-node.js +1 -5
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +12 -1
- package/dist/cjs/operation-node/foreign-key-constraint-node.js +6 -0
- package/dist/cjs/operation-node/join-node.d.ts +1 -0
- package/dist/cjs/operation-node/join-node.js +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +3 -0
- package/dist/cjs/operation-node/references-node.d.ts +5 -3
- package/dist/cjs/operation-node/references-node.js +6 -0
- package/dist/cjs/operation-node/table-node.js +2 -2
- package/dist/cjs/parser/data-type-parser.d.ts +5 -0
- package/dist/cjs/parser/data-type-parser.js +11 -0
- package/dist/cjs/parser/default-value-parser.d.ts +6 -0
- package/dist/cjs/parser/default-value-parser.js +11 -0
- package/dist/cjs/parser/filter-parser.d.ts +2 -2
- package/dist/cjs/parser/filter-parser.js +34 -36
- package/dist/cjs/parser/join-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.js +9 -11
- package/dist/cjs/parser/parse-context.d.ts +33 -6
- package/dist/cjs/parser/parse-context.js +40 -33
- package/dist/cjs/parser/reference-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.js +16 -12
- package/dist/cjs/parser/select-parser.d.ts +1 -2
- package/dist/cjs/parser/select-parser.js +4 -5
- package/dist/cjs/parser/table-parser.js +11 -6
- package/dist/cjs/parser/update-set-parser.js +1 -1
- package/dist/cjs/parser/value-parser.js +1 -1
- package/dist/cjs/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +6 -6
- package/dist/cjs/query-builder/{sub-query-builder.js → expression-builder.js} +6 -10
- package/dist/cjs/query-builder/join-builder.d.ts +2 -2
- package/dist/cjs/query-builder/join-builder.js +8 -12
- package/dist/cjs/query-builder/query-builder.d.ts +2 -2
- package/dist/cjs/query-builder/query-builder.js +34 -36
- package/dist/cjs/query-builder/type-utils.d.ts +5 -5
- package/dist/cjs/query-compiler/default-query-compiler.js +13 -1
- package/dist/cjs/query-creator.d.ts +2 -2
- package/dist/cjs/query-creator.js +8 -12
- package/dist/cjs/schema/alter-table-builder.d.ts +26 -8
- package/dist/cjs/schema/alter-table-builder.js +75 -7
- package/dist/cjs/schema/column-definition-builder.d.ts +10 -4
- package/dist/cjs/schema/column-definition-builder.js +11 -6
- package/dist/cjs/schema/create-index-builder.d.ts +5 -5
- package/dist/cjs/schema/create-index-builder.js +19 -28
- package/dist/cjs/schema/create-schema-builder.d.ts +5 -5
- package/dist/cjs/schema/create-schema-builder.js +9 -13
- package/dist/cjs/schema/create-table-builder.d.ts +22 -10
- package/dist/cjs/schema/create-table-builder.js +41 -34
- package/dist/cjs/schema/drop-index-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-index-builder.js +11 -16
- package/dist/cjs/schema/drop-schema-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-schema-builder.js +9 -13
- package/dist/cjs/schema/drop-table-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-table-builder.js +9 -13
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +14 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +26 -0
- package/dist/esm/dialect/dialect-adapter.d.ts +11 -9
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +2 -2
- package/dist/esm/kysely.js +9 -7
- package/dist/esm/operation-node/create-table-node.d.ts +2 -1
- package/dist/esm/operation-node/create-table-node.js +1 -5
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +12 -1
- package/dist/esm/operation-node/foreign-key-constraint-node.js +6 -0
- package/dist/esm/operation-node/join-node.d.ts +1 -0
- package/dist/esm/operation-node/join-node.js +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +3 -0
- package/dist/esm/operation-node/references-node.d.ts +5 -3
- package/dist/esm/operation-node/references-node.js +6 -0
- package/dist/esm/operation-node/table-node.js +2 -2
- package/dist/esm/parser/data-type-parser.d.ts +5 -0
- package/dist/esm/parser/data-type-parser.js +7 -0
- package/dist/esm/parser/default-value-parser.d.ts +6 -0
- package/dist/esm/parser/default-value-parser.js +7 -0
- package/dist/esm/parser/filter-parser.d.ts +2 -2
- package/dist/esm/parser/filter-parser.js +31 -33
- package/dist/esm/parser/join-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.js +7 -9
- package/dist/esm/parser/parse-context.d.ts +33 -6
- package/dist/esm/parser/parse-context.js +38 -31
- package/dist/esm/parser/reference-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.js +16 -12
- package/dist/esm/parser/select-parser.d.ts +1 -2
- package/dist/esm/parser/select-parser.js +3 -3
- package/dist/esm/parser/table-parser.js +11 -6
- package/dist/esm/parser/update-set-parser.js +1 -1
- package/dist/esm/parser/value-parser.js +1 -1
- package/dist/esm/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +6 -6
- package/dist/esm/query-builder/{sub-query-builder.js → expression-builder.js} +4 -8
- package/dist/esm/query-builder/join-builder.d.ts +2 -2
- package/dist/esm/query-builder/join-builder.js +9 -13
- package/dist/esm/query-builder/query-builder.d.ts +2 -2
- package/dist/esm/query-builder/query-builder.js +37 -39
- package/dist/esm/query-builder/type-utils.d.ts +5 -5
- package/dist/esm/query-compiler/default-query-compiler.js +14 -2
- package/dist/esm/query-creator.d.ts +2 -2
- package/dist/esm/query-creator.js +8 -12
- package/dist/esm/schema/alter-table-builder.d.ts +26 -8
- package/dist/esm/schema/alter-table-builder.js +73 -6
- package/dist/esm/schema/column-definition-builder.d.ts +10 -4
- package/dist/esm/schema/column-definition-builder.js +12 -7
- package/dist/esm/schema/create-index-builder.d.ts +5 -5
- package/dist/esm/schema/create-index-builder.js +19 -28
- package/dist/esm/schema/create-schema-builder.d.ts +5 -5
- package/dist/esm/schema/create-schema-builder.js +9 -13
- package/dist/esm/schema/create-table-builder.d.ts +22 -10
- package/dist/esm/schema/create-table-builder.js +41 -34
- package/dist/esm/schema/drop-index-builder.d.ts +5 -5
- package/dist/esm/schema/drop-index-builder.js +11 -16
- package/dist/esm/schema/drop-schema-builder.d.ts +5 -5
- package/dist/esm/schema/drop-schema-builder.js +9 -13
- package/dist/esm/schema/drop-table-builder.d.ts +5 -5
- package/dist/esm/schema/drop-table-builder.js +9 -13
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +14 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +22 -0
- package/package.json +1 -1
|
@@ -4,14 +4,11 @@ exports.DropIndexBuilder = void 0;
|
|
|
4
4
|
const drop_index_node_js_1 = require("../operation-node/drop-index-node.js");
|
|
5
5
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
6
6
|
const table_parser_js_1 = require("../parser/table-parser.js");
|
|
7
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
7
8
|
class DropIndexBuilder {
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
constructor(args) {
|
|
12
|
-
this.#queryId = args.queryId;
|
|
13
|
-
this.#dropIndexNode = args.dropIndexNode;
|
|
14
|
-
this.#executor = args.executor;
|
|
9
|
+
#props;
|
|
10
|
+
constructor(props) {
|
|
11
|
+
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
15
12
|
}
|
|
16
13
|
/**
|
|
17
14
|
* Specifies the table the index was created for. This is not needed
|
|
@@ -19,30 +16,28 @@ class DropIndexBuilder {
|
|
|
19
16
|
*/
|
|
20
17
|
on(table) {
|
|
21
18
|
return new DropIndexBuilder({
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
dropIndexNode: drop_index_node_js_1.DropIndexNode.cloneWith(this.#dropIndexNode, {
|
|
19
|
+
...this.#props,
|
|
20
|
+
dropIndexNode: drop_index_node_js_1.DropIndexNode.cloneWith(this.#props.dropIndexNode, {
|
|
25
21
|
table: (0, table_parser_js_1.parseTable)(table),
|
|
26
22
|
}),
|
|
27
23
|
});
|
|
28
24
|
}
|
|
29
25
|
ifExists() {
|
|
30
26
|
return new DropIndexBuilder({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
dropIndexNode: drop_index_node_js_1.DropIndexNode.cloneWith(this.#dropIndexNode, {
|
|
27
|
+
...this.#props,
|
|
28
|
+
dropIndexNode: drop_index_node_js_1.DropIndexNode.cloneWith(this.#props.dropIndexNode, {
|
|
34
29
|
modifier: 'IfExists',
|
|
35
30
|
}),
|
|
36
31
|
});
|
|
37
32
|
}
|
|
38
33
|
toOperationNode() {
|
|
39
|
-
return this.#executor.transformQuery(this.#dropIndexNode, this.#queryId);
|
|
34
|
+
return this.#props.executor.transformQuery(this.#props.dropIndexNode, this.#props.queryId);
|
|
40
35
|
}
|
|
41
36
|
compile() {
|
|
42
|
-
return this.#executor.compileQuery(this.toOperationNode(), this.#queryId);
|
|
37
|
+
return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
|
|
43
38
|
}
|
|
44
39
|
async execute() {
|
|
45
|
-
await this.#executor.executeQuery(this.compile(), this.#queryId);
|
|
40
|
+
await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
|
|
46
41
|
}
|
|
47
42
|
}
|
|
48
43
|
exports.DropIndexBuilder = DropIndexBuilder;
|
|
@@ -6,14 +6,14 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
|
6
6
|
import { QueryId } from '../util/query-id.js';
|
|
7
7
|
export declare class DropSchemaBuilder implements OperationNodeSource, Compilable {
|
|
8
8
|
#private;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(props: DropSchemaBuilderProps);
|
|
10
10
|
ifExists(): DropSchemaBuilder;
|
|
11
11
|
toOperationNode(): DropSchemaNode;
|
|
12
12
|
compile(): CompiledQuery;
|
|
13
13
|
execute(): Promise<void>;
|
|
14
14
|
}
|
|
15
|
-
export interface
|
|
16
|
-
queryId: QueryId;
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
export interface DropSchemaBuilderProps {
|
|
16
|
+
readonly queryId: QueryId;
|
|
17
|
+
readonly executor: QueryExecutor;
|
|
18
|
+
readonly dropSchemaNode: DropSchemaNode;
|
|
19
19
|
}
|
|
@@ -3,30 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DropSchemaBuilder = void 0;
|
|
4
4
|
const drop_schema_node_js_1 = require("../operation-node/drop-schema-node.js");
|
|
5
5
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
6
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
6
7
|
class DropSchemaBuilder {
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
constructor(args) {
|
|
11
|
-
this.#queryId = args.queryId;
|
|
12
|
-
this.#dropSchemaNode = args.dropSchemaNode;
|
|
13
|
-
this.#executor = args.executor;
|
|
8
|
+
#props;
|
|
9
|
+
constructor(props) {
|
|
10
|
+
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
14
11
|
}
|
|
15
12
|
ifExists() {
|
|
16
13
|
return new DropSchemaBuilder({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
dropSchemaNode: drop_schema_node_js_1.DropSchemaNode.cloneWithModifier(this.#dropSchemaNode, 'IfExists'),
|
|
14
|
+
...this.#props,
|
|
15
|
+
dropSchemaNode: drop_schema_node_js_1.DropSchemaNode.cloneWithModifier(this.#props.dropSchemaNode, 'IfExists'),
|
|
20
16
|
});
|
|
21
17
|
}
|
|
22
18
|
toOperationNode() {
|
|
23
|
-
return this.#executor.transformQuery(this.#dropSchemaNode, this.#queryId);
|
|
19
|
+
return this.#props.executor.transformQuery(this.#props.dropSchemaNode, this.#props.queryId);
|
|
24
20
|
}
|
|
25
21
|
compile() {
|
|
26
|
-
return this.#executor.compileQuery(this.toOperationNode(), this.#queryId);
|
|
22
|
+
return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
|
|
27
23
|
}
|
|
28
24
|
async execute() {
|
|
29
|
-
await this.#executor.executeQuery(this.compile(), this.#queryId);
|
|
25
|
+
await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
|
|
30
26
|
}
|
|
31
27
|
}
|
|
32
28
|
exports.DropSchemaBuilder = DropSchemaBuilder;
|
|
@@ -6,14 +6,14 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
|
6
6
|
import { QueryId } from '../util/query-id.js';
|
|
7
7
|
export declare class DropTableBuilder implements OperationNodeSource, Compilable {
|
|
8
8
|
#private;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(props: DropTableBuilderProps);
|
|
10
10
|
ifExists(): DropTableBuilder;
|
|
11
11
|
toOperationNode(): DropTableNode;
|
|
12
12
|
compile(): CompiledQuery;
|
|
13
13
|
execute(): Promise<void>;
|
|
14
14
|
}
|
|
15
|
-
export interface
|
|
16
|
-
queryId: QueryId;
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
export interface DropTableBuilderProps {
|
|
16
|
+
readonly queryId: QueryId;
|
|
17
|
+
readonly executor: QueryExecutor;
|
|
18
|
+
readonly dropTableNode: DropTableNode;
|
|
19
19
|
}
|
|
@@ -3,30 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DropTableBuilder = void 0;
|
|
4
4
|
const drop_table_node_js_1 = require("../operation-node/drop-table-node.js");
|
|
5
5
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
6
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
6
7
|
class DropTableBuilder {
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
constructor(args) {
|
|
11
|
-
this.#queryId = args.queryId;
|
|
12
|
-
this.#dropTableNode = args.dropTableNode;
|
|
13
|
-
this.#executor = args.executor;
|
|
8
|
+
#props;
|
|
9
|
+
constructor(props) {
|
|
10
|
+
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
14
11
|
}
|
|
15
12
|
ifExists() {
|
|
16
13
|
return new DropTableBuilder({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
dropTableNode: drop_table_node_js_1.DropTableNode.cloneWithModifier(this.#dropTableNode, 'IfExists'),
|
|
14
|
+
...this.#props,
|
|
15
|
+
dropTableNode: drop_table_node_js_1.DropTableNode.cloneWithModifier(this.#props.dropTableNode, 'IfExists'),
|
|
20
16
|
});
|
|
21
17
|
}
|
|
22
18
|
toOperationNode() {
|
|
23
|
-
return this.#executor.transformQuery(this.#dropTableNode, this.#queryId);
|
|
19
|
+
return this.#props.executor.transformQuery(this.#props.dropTableNode, this.#props.queryId);
|
|
24
20
|
}
|
|
25
21
|
compile() {
|
|
26
|
-
return this.#executor.compileQuery(this.toOperationNode(), this.#queryId);
|
|
22
|
+
return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
|
|
27
23
|
}
|
|
28
24
|
async execute() {
|
|
29
|
-
await this.#executor.executeQuery(this.compile(), this.#queryId);
|
|
25
|
+
await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
|
|
30
26
|
}
|
|
31
27
|
}
|
|
32
28
|
exports.DropTableBuilder = DropTableBuilder;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ForeignKeyConstraintNode } from '../operation-node/foreign-key-constraint-node.js';
|
|
2
|
+
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
3
|
+
import { OnModifyForeignAction } from '../operation-node/references-node.js';
|
|
4
|
+
export interface ForeignKeyConstraintBuilderInterface<R> {
|
|
5
|
+
onDelete(onDelete: OnModifyForeignAction): R;
|
|
6
|
+
onUpdate(onUpdate: OnModifyForeignAction): R;
|
|
7
|
+
}
|
|
8
|
+
export declare class ForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface<ForeignKeyConstraintBuilder>, OperationNodeSource {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(node: ForeignKeyConstraintNode);
|
|
11
|
+
onDelete(onDelete: OnModifyForeignAction): ForeignKeyConstraintBuilder;
|
|
12
|
+
onUpdate(onUpdate: OnModifyForeignAction): ForeignKeyConstraintBuilder;
|
|
13
|
+
toOperationNode(): ForeignKeyConstraintNode;
|
|
14
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ForeignKeyConstraintBuilder = void 0;
|
|
4
|
+
const foreign_key_constraint_node_js_1 = require("../operation-node/foreign-key-constraint-node.js");
|
|
5
|
+
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
6
|
+
class ForeignKeyConstraintBuilder {
|
|
7
|
+
#node;
|
|
8
|
+
constructor(node) {
|
|
9
|
+
this.#node = node;
|
|
10
|
+
}
|
|
11
|
+
onDelete(onDelete) {
|
|
12
|
+
return new ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.cloneWith(this.#node, {
|
|
13
|
+
onDelete,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
onUpdate(onUpdate) {
|
|
17
|
+
return new ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.cloneWith(this.#node, {
|
|
18
|
+
onUpdate,
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
toOperationNode() {
|
|
22
|
+
return this.#node;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.ForeignKeyConstraintBuilder = ForeignKeyConstraintBuilder;
|
|
26
|
+
(0, prevent_await_js_1.preventAwait)(ForeignKeyConstraintBuilder, "don't await ForeignKeyConstraintBuilder instances directly.");
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import { Kysely } from '../kysely.js';
|
|
2
|
-
|
|
3
|
-
* The `DialectAdapter` encapsulates all differences between dialects outside
|
|
4
|
-
* the `Driver` and `QueryCompiler`.
|
|
5
|
-
*
|
|
6
|
-
* For example, some databases support transactional DDL and therefore we want
|
|
7
|
-
* to run migrations inside a transaction, while other databases don't support
|
|
8
|
-
* it. For that there's a `supportsTransactionalDdl` boolean in this interface.
|
|
9
|
-
*/
|
|
10
|
-
export interface DialectAdapter {
|
|
2
|
+
export interface DialectSupports {
|
|
11
3
|
/**
|
|
12
4
|
* Whether or not this dialect supports transactional DDL.
|
|
13
5
|
*
|
|
@@ -19,6 +11,16 @@ export interface DialectAdapter {
|
|
|
19
11
|
* upates and deletes.
|
|
20
12
|
*/
|
|
21
13
|
readonly supportsReturning: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The `DialectAdapter` encapsulates all differences between dialects outside
|
|
17
|
+
* the `Driver` and `QueryCompiler`.
|
|
18
|
+
*
|
|
19
|
+
* For example, some databases support transactional DDL and therefore we want
|
|
20
|
+
* to run migrations inside a transaction, while other databases don't support
|
|
21
|
+
* it. For that there's a `supportsTransactionalDdl` boolean in this interface.
|
|
22
|
+
*/
|
|
23
|
+
export interface DialectAdapter extends DialectSupports {
|
|
22
24
|
/**
|
|
23
25
|
* This method is used to acquire a lock for the migrations so that
|
|
24
26
|
* it's not possible for two migration processes to run in parallel.
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export * from './kysely.js';
|
|
|
2
2
|
export * from './query-creator.js';
|
|
3
3
|
export * from './query-builder/query-builder.js';
|
|
4
4
|
export * from './query-builder/join-builder.js';
|
|
5
|
-
export * from './query-builder/
|
|
5
|
+
export * from './query-builder/expression-builder.js';
|
|
6
6
|
export * from './raw-builder/raw-builder.js';
|
|
7
7
|
export * from './query-executor/query-executor.js';
|
|
8
8
|
export * from './query-executor/default-query-executor.js';
|
|
@@ -17,6 +17,7 @@ export * from './schema/drop-index-builder.js';
|
|
|
17
17
|
export * from './schema/create-schema-builder.js';
|
|
18
18
|
export * from './schema/drop-schema-builder.js';
|
|
19
19
|
export * from './schema/column-definition-builder.js';
|
|
20
|
+
export * from './schema/foreign-key-constraint-builder.js';
|
|
20
21
|
export * from './schema/alter-table-builder.js';
|
|
21
22
|
export * from './dynamic/dynamic.js';
|
|
22
23
|
export * from './driver/driver.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export * from './kysely.js';
|
|
|
2
2
|
export * from './query-creator.js';
|
|
3
3
|
export * from './query-builder/query-builder.js';
|
|
4
4
|
export * from './query-builder/join-builder.js';
|
|
5
|
-
export * from './query-builder/
|
|
5
|
+
export * from './query-builder/expression-builder.js';
|
|
6
6
|
export * from './raw-builder/raw-builder.js';
|
|
7
7
|
export * from './query-executor/query-executor.js';
|
|
8
8
|
export * from './query-executor/default-query-executor.js';
|
|
@@ -17,6 +17,7 @@ export * from './schema/drop-index-builder.js';
|
|
|
17
17
|
export * from './schema/create-schema-builder.js';
|
|
18
18
|
export * from './schema/drop-schema-builder.js';
|
|
19
19
|
export * from './schema/column-definition-builder.js';
|
|
20
|
+
export * from './schema/foreign-key-constraint-builder.js';
|
|
20
21
|
export * from './schema/alter-table-builder.js';
|
|
21
22
|
export * from './dynamic/dynamic.js';
|
|
22
23
|
export * from './driver/driver.js';
|
package/dist/esm/kysely.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { KyselyPlugin } from './plugin/kysely-plugin.js';
|
|
|
8
8
|
import { GeneratedPlaceholder } from './query-builder/type-utils.js';
|
|
9
9
|
import { DatabaseIntrospector } from './introspection/database-introspector.js';
|
|
10
10
|
import { Driver, IsolationLevel } from './driver/driver.js';
|
|
11
|
-
import {
|
|
11
|
+
import { ParseContext } from './parser/parse-context.js';
|
|
12
12
|
/**
|
|
13
13
|
* The main Kysely class.
|
|
14
14
|
*
|
|
@@ -186,7 +186,7 @@ export interface KyselyProps {
|
|
|
186
186
|
readonly driver: Driver;
|
|
187
187
|
readonly executor: QueryExecutor;
|
|
188
188
|
readonly dialect: Dialect;
|
|
189
|
-
readonly
|
|
189
|
+
readonly parseContext: ParseContext;
|
|
190
190
|
}
|
|
191
191
|
export declare function isKyselyProps(obj: unknown): obj is KyselyProps;
|
|
192
192
|
export interface KyselyConfig {
|
package/dist/esm/kysely.js
CHANGED
|
@@ -10,6 +10,7 @@ import { RuntimeDriver } from './driver/runtime-driver.js';
|
|
|
10
10
|
import { SingleConnectionProvider } from './driver/single-connection-provider.js';
|
|
11
11
|
import { TRANSACTION_ISOLATION_LEVELS, } from './driver/driver.js';
|
|
12
12
|
import { preventAwait } from './util/prevent-await.js';
|
|
13
|
+
import { DefaultParseContext } from './parser/parse-context.js';
|
|
13
14
|
/**
|
|
14
15
|
* The main Kysely class.
|
|
15
16
|
*
|
|
@@ -54,7 +55,7 @@ export class Kysely extends QueryCreator {
|
|
|
54
55
|
#props;
|
|
55
56
|
constructor(args) {
|
|
56
57
|
if (isKyselyProps(args)) {
|
|
57
|
-
super({ executor: args.executor,
|
|
58
|
+
super({ executor: args.executor, parseContext: args.parseContext });
|
|
58
59
|
this.#props = freeze(args);
|
|
59
60
|
}
|
|
60
61
|
else {
|
|
@@ -62,16 +63,17 @@ export class Kysely extends QueryCreator {
|
|
|
62
63
|
const driver = dialect.createDriver();
|
|
63
64
|
const compiler = dialect.createQueryCompiler();
|
|
64
65
|
const adapter = dialect.createAdapter();
|
|
66
|
+
const parseContext = new DefaultParseContext(adapter);
|
|
65
67
|
const runtimeDriver = new RuntimeDriver(driver);
|
|
66
68
|
const connectionProvider = new DefaultConnectionProvider(runtimeDriver);
|
|
67
69
|
const executor = new DefaultQueryExecutor(compiler, connectionProvider, args.plugins ?? []);
|
|
68
|
-
super({ executor,
|
|
70
|
+
super({ executor, parseContext });
|
|
69
71
|
this.#props = freeze({
|
|
70
72
|
config: args,
|
|
71
73
|
executor,
|
|
72
|
-
adapter,
|
|
73
74
|
dialect,
|
|
74
|
-
driver,
|
|
75
|
+
driver: runtimeDriver,
|
|
76
|
+
parseContext,
|
|
75
77
|
});
|
|
76
78
|
}
|
|
77
79
|
}
|
|
@@ -85,7 +87,7 @@ export class Kysely extends QueryCreator {
|
|
|
85
87
|
* Returns the {@link MigrationModule} module for managing and running migrations.
|
|
86
88
|
*/
|
|
87
89
|
get migration() {
|
|
88
|
-
return new MigrationModule(this, this.#props.adapter);
|
|
90
|
+
return new MigrationModule(this, this.#props.parseContext.adapter);
|
|
89
91
|
}
|
|
90
92
|
/**
|
|
91
93
|
* Returns a the {@link DynamicModule} module.
|
|
@@ -243,7 +245,7 @@ export function isKyselyProps(obj) {
|
|
|
243
245
|
isObject(obj.driver) &&
|
|
244
246
|
isObject(obj.executor) &&
|
|
245
247
|
isObject(obj.dialect) &&
|
|
246
|
-
isObject(obj.
|
|
248
|
+
isObject(obj.parseContext));
|
|
247
249
|
}
|
|
248
250
|
export class ConnectionBuilder {
|
|
249
251
|
#props;
|
|
@@ -269,7 +271,7 @@ preventAwait(ConnectionBuilder, "don't await ConnectionBuilder instances directl
|
|
|
269
271
|
export class TransactionBuilder {
|
|
270
272
|
#props;
|
|
271
273
|
constructor(props) {
|
|
272
|
-
this.#props = props;
|
|
274
|
+
this.#props = freeze(props);
|
|
273
275
|
}
|
|
274
276
|
setIsolationLevel(isolationLevel) {
|
|
275
277
|
return new TransactionBuilder({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
|
+
import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
3
4
|
import { ConstraintNode } from './constraint-node.js';
|
|
4
5
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
5
6
|
export declare type CreateTableNodeModifier = 'IfNotExists';
|
|
@@ -21,5 +22,5 @@ export declare const CreateTableNode: Readonly<{
|
|
|
21
22
|
cloneWithPrimaryKeyConstraint(createTable: CreateTableNode, constraintName: string, columns: string[]): CreateTableNode;
|
|
22
23
|
cloneWithUniqueConstraint(createTable: CreateTableNode, constraintName: string, columns: string[]): CreateTableNode;
|
|
23
24
|
cloneWithCheckConstraint(createTable: CreateTableNode, constraintName: string, sql: string): CreateTableNode;
|
|
24
|
-
cloneWithForeignKeyConstraint(createTable: CreateTableNode,
|
|
25
|
+
cloneWithForeignKeyConstraint(createTable: CreateTableNode, constraint: ForeignKeyConstraintNode): CreateTableNode;
|
|
25
26
|
}>;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { freeze } from '../util/object-utils.js';
|
|
2
2
|
import { CheckConstraintNode } from './check-constraint-node.js';
|
|
3
|
-
import { TableNode } from './table-node.js';
|
|
4
3
|
import { PrimaryConstraintNode } from './primary-constraint-node.js';
|
|
5
4
|
import { UniqueConstraintNode } from './unique-constraint-node.js';
|
|
6
|
-
import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
7
|
-
import { ColumnNode } from './column-node.js';
|
|
8
5
|
/**
|
|
9
6
|
* @internal
|
|
10
7
|
*/
|
|
@@ -58,8 +55,7 @@ export const CreateTableNode = freeze({
|
|
|
58
55
|
: freeze([constraint]),
|
|
59
56
|
});
|
|
60
57
|
},
|
|
61
|
-
cloneWithForeignKeyConstraint(createTable,
|
|
62
|
-
const constraint = ForeignKeyConstraintNode.create(sourceColumns.map(ColumnNode.create), TableNode.create(targetTable), targetColumns.map(ColumnNode.create), constraintName);
|
|
58
|
+
cloneWithForeignKeyConstraint(createTable, constraint) {
|
|
63
59
|
return freeze({
|
|
64
60
|
...createTable,
|
|
65
61
|
constraints: createTable.constraints
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { ColumnNode } from './column-node.js';
|
|
2
2
|
import { IdentifierNode } from './identifier-node.js';
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
|
-
import { ReferencesNode } from './references-node.js';
|
|
4
|
+
import { OnModifyForeignAction, ReferencesNode } from './references-node.js';
|
|
5
5
|
import { TableNode } from './table-node.js';
|
|
6
|
+
export declare type ForeignKeyConstraintNodeProps = Omit<ForeignKeyConstraintNode, 'kind' | 'columns' | 'references'>;
|
|
6
7
|
export interface ForeignKeyConstraintNode extends OperationNode {
|
|
7
8
|
readonly kind: 'ForeignKeyConstraintNode';
|
|
8
9
|
readonly columns: ReadonlyArray<ColumnNode>;
|
|
9
10
|
readonly references: ReferencesNode;
|
|
11
|
+
readonly onDelete?: OnModifyForeignAction;
|
|
12
|
+
readonly onUpdate?: OnModifyForeignAction;
|
|
10
13
|
readonly name?: IdentifierNode;
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
@@ -15,4 +18,12 @@ export interface ForeignKeyConstraintNode extends OperationNode {
|
|
|
15
18
|
export declare const ForeignKeyConstraintNode: Readonly<{
|
|
16
19
|
is(node: OperationNode): node is ForeignKeyConstraintNode;
|
|
17
20
|
create(sourceColumns: ReadonlyArray<ColumnNode>, targetTable: TableNode, targetColumns: ReadonlyArray<ColumnNode>, constraintName?: string | undefined): ForeignKeyConstraintNode;
|
|
21
|
+
cloneWith(node: ForeignKeyConstraintNode, props: ForeignKeyConstraintNodeProps): Readonly<{
|
|
22
|
+
name?: IdentifierNode | undefined;
|
|
23
|
+
onDelete?: OnModifyForeignAction | undefined;
|
|
24
|
+
onUpdate?: OnModifyForeignAction | undefined;
|
|
25
|
+
kind: 'ForeignKeyConstraintNode';
|
|
26
|
+
columns: ReadonlyArray<ColumnNode>;
|
|
27
|
+
references: ReferencesNode;
|
|
28
|
+
}>;
|
|
18
29
|
}>;
|
|
@@ -20,5 +20,6 @@ export interface JoinNode extends OperationNode {
|
|
|
20
20
|
export declare const JoinNode: Readonly<{
|
|
21
21
|
is(node: OperationNode): node is JoinNode;
|
|
22
22
|
create(joinType: JoinType, table: JoinTableNode): JoinNode;
|
|
23
|
+
createWithOn(joinType: JoinType, table: JoinTableNode, on: JoinNodeOnNode): JoinNode;
|
|
23
24
|
cloneWithOn(joinNode: JoinNode, op: 'And' | 'Or', on: JoinNodeOnNode): JoinNode;
|
|
24
25
|
}>;
|
|
@@ -16,6 +16,14 @@ export const JoinNode = freeze({
|
|
|
16
16
|
on: undefined,
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
+
createWithOn(joinType, table, on) {
|
|
20
|
+
return freeze({
|
|
21
|
+
kind: 'JoinNode',
|
|
22
|
+
joinType,
|
|
23
|
+
table,
|
|
24
|
+
on,
|
|
25
|
+
});
|
|
26
|
+
},
|
|
19
27
|
cloneWithOn(joinNode, op, on) {
|
|
20
28
|
return freeze({
|
|
21
29
|
...joinNode,
|
|
@@ -396,6 +396,8 @@ export class OperationNodeTransformer {
|
|
|
396
396
|
columns: this.transformNodeList(node.columns),
|
|
397
397
|
references: this.transformNode(node.references),
|
|
398
398
|
name: this.transformNode(node.name),
|
|
399
|
+
onDelete: node.onDelete,
|
|
400
|
+
onUpdate: node.onUpdate,
|
|
399
401
|
};
|
|
400
402
|
}
|
|
401
403
|
transformReferences(node) {
|
|
@@ -404,6 +406,7 @@ export class OperationNodeTransformer {
|
|
|
404
406
|
table: this.transformNode(node.table),
|
|
405
407
|
columns: this.transformNodeList(node.columns),
|
|
406
408
|
onDelete: node.onDelete,
|
|
409
|
+
onUpdate: node.onUpdate,
|
|
407
410
|
};
|
|
408
411
|
}
|
|
409
412
|
transformCheckConstraint(node) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { ColumnNode } from './column-node.js';
|
|
3
3
|
import { TableNode } from './table-node.js';
|
|
4
|
-
export declare type
|
|
4
|
+
export declare type OnModifyForeignAction = 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default';
|
|
5
5
|
export interface ReferencesNode extends OperationNode {
|
|
6
6
|
readonly kind: 'ReferencesNode';
|
|
7
7
|
readonly table: TableNode;
|
|
8
8
|
readonly columns: ReadonlyArray<ColumnNode>;
|
|
9
|
-
readonly onDelete?:
|
|
9
|
+
readonly onDelete?: OnModifyForeignAction;
|
|
10
|
+
readonly onUpdate?: OnModifyForeignAction;
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* @internal
|
|
@@ -14,5 +15,6 @@ export interface ReferencesNode extends OperationNode {
|
|
|
14
15
|
export declare const ReferencesNode: Readonly<{
|
|
15
16
|
is(node: OperationNode): node is ReferencesNode;
|
|
16
17
|
create(table: TableNode, columns: ReadonlyArray<ColumnNode>): ReferencesNode;
|
|
17
|
-
cloneWithOnDelete(references: ReferencesNode, onDelete:
|
|
18
|
+
cloneWithOnDelete(references: ReferencesNode, onDelete: OnModifyForeignAction): ReferencesNode;
|
|
19
|
+
cloneWithOnUpdate(references: ReferencesNode, onUpdate: OnModifyForeignAction): ReferencesNode;
|
|
18
20
|
}>;
|
|
@@ -8,10 +8,10 @@ export const TableNode = freeze({
|
|
|
8
8
|
return node.kind === 'TableNode';
|
|
9
9
|
},
|
|
10
10
|
create(table) {
|
|
11
|
-
return {
|
|
11
|
+
return freeze({
|
|
12
12
|
kind: 'TableNode',
|
|
13
13
|
table: IdentifierNode.create(table),
|
|
14
|
-
};
|
|
14
|
+
});
|
|
15
15
|
},
|
|
16
16
|
createWithSchema(schema, table) {
|
|
17
17
|
return freeze({
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ColumnDataType, DataTypeNode } from '../operation-node/data-type-node.js';
|
|
2
|
+
import { RawNode } from '../operation-node/raw-node.js';
|
|
3
|
+
import { AnyRawBuilder } from '../query-builder/type-utils.js';
|
|
4
|
+
export declare type DataTypeExpression = ColumnDataType | AnyRawBuilder;
|
|
5
|
+
export declare function parseDataTypeExpression(dataType: DataTypeExpression): DataTypeNode | RawNode;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataTypeNode, } from '../operation-node/data-type-node.js';
|
|
2
|
+
import { isOperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
3
|
+
export function parseDataTypeExpression(dataType) {
|
|
4
|
+
return isOperationNodeSource(dataType)
|
|
5
|
+
? dataType.toOperationNode()
|
|
6
|
+
: DataTypeNode.create(dataType);
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RawNode } from '../operation-node/raw-node.js';
|
|
2
|
+
import { ValueNode } from '../operation-node/value-node.js';
|
|
3
|
+
import { AnyRawBuilder } from '../query-builder/type-utils.js';
|
|
4
|
+
import { PrimitiveValue } from '../util/object-utils.js';
|
|
5
|
+
export declare type DefaultValueExpression = PrimitiveValue | AnyRawBuilder;
|
|
6
|
+
export declare function parseDefaultValueExpression(value: DefaultValueExpression): ValueNode | RawNode;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { isOperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
2
|
+
import { ValueNode } from '../operation-node/value-node.js';
|
|
3
|
+
export function parseDefaultValueExpression(value) {
|
|
4
|
+
return isOperationNodeSource(value)
|
|
5
|
+
? value.toOperationNode()
|
|
6
|
+
: ValueNode.createImmediate(value);
|
|
7
|
+
}
|
|
@@ -10,5 +10,5 @@ export declare function parseWhereFilter(ctx: ParseContext, args: any[]): Filter
|
|
|
10
10
|
export declare function parseHavingFilter(ctx: ParseContext, args: any[]): FilterExpressionNode;
|
|
11
11
|
export declare function parseOnFilter(ctx: ParseContext, args: any[]): FilterExpressionNode;
|
|
12
12
|
export declare function parseReferenceFilter(ctx: ParseContext, lhs: ReferenceExpression<any, any>, op: FilterOperator, rhs: ReferenceExpression<any, any>): FilterNode;
|
|
13
|
-
export declare function
|
|
14
|
-
export declare function
|
|
13
|
+
export declare function parseExistFilter(ctx: ParseContext, arg: ExistsExpression<any, any>): FilterNode;
|
|
14
|
+
export declare function parseNotExistFilter(ctx: ParseContext, arg: ExistsExpression<any, any>): FilterNode;
|