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
package/README.md
CHANGED
|
@@ -24,11 +24,15 @@ fail you. With Kysely you can also explicitly tell it to ignore the typings, but
|
|
|
24
24
|
type-safety! See the [DynamicModule](https://koskimas.github.io/kysely/classes/DynamicModule.html#ref)
|
|
25
25
|
for more info.
|
|
26
26
|
|
|
27
|
-
Kysely is still young and some useful
|
|
28
|
-
Kysely
|
|
27
|
+
Kysely is still young and some useful features are propably not yet implemented. If you start
|
|
28
|
+
using Kysely and can't find something you'd want to use, please open an issue.
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
# Table of contents
|
|
31
|
+
|
|
32
|
+
- [Installation](#installation)
|
|
33
|
+
- [Minimal example](#minimal-example)
|
|
31
34
|
- [Migrations](#migrations)
|
|
35
|
+
- [API reference](https://koskimas.github.io/kysely/index.html)
|
|
32
36
|
|
|
33
37
|
# Installation
|
|
34
38
|
|
|
@@ -43,7 +47,7 @@ npm install kysely mysql2
|
|
|
43
47
|
```
|
|
44
48
|
|
|
45
49
|
More dialects will be added soon. Kysely also has a simple interface
|
|
46
|
-
for [
|
|
50
|
+
for [3rd party dialects](https://koskimas.github.io/kysely/interfaces/Dialect.html).
|
|
47
51
|
|
|
48
52
|
3rd party dialects:
|
|
49
53
|
|
|
@@ -76,7 +80,7 @@ interface Movie {
|
|
|
76
80
|
stars: number
|
|
77
81
|
}
|
|
78
82
|
|
|
79
|
-
// Keys are table names.
|
|
83
|
+
// Keys of this interface are table names.
|
|
80
84
|
interface Database {
|
|
81
85
|
person: Person
|
|
82
86
|
pet: Pet
|
|
@@ -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/cjs/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/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ __exportStar(require("./kysely.js"), exports);
|
|
|
14
14
|
__exportStar(require("./query-creator.js"), exports);
|
|
15
15
|
__exportStar(require("./query-builder/query-builder.js"), exports);
|
|
16
16
|
__exportStar(require("./query-builder/join-builder.js"), exports);
|
|
17
|
-
__exportStar(require("./query-builder/
|
|
17
|
+
__exportStar(require("./query-builder/expression-builder.js"), exports);
|
|
18
18
|
__exportStar(require("./raw-builder/raw-builder.js"), exports);
|
|
19
19
|
__exportStar(require("./query-executor/query-executor.js"), exports);
|
|
20
20
|
__exportStar(require("./query-executor/default-query-executor.js"), exports);
|
|
@@ -29,6 +29,7 @@ __exportStar(require("./schema/drop-index-builder.js"), exports);
|
|
|
29
29
|
__exportStar(require("./schema/create-schema-builder.js"), exports);
|
|
30
30
|
__exportStar(require("./schema/drop-schema-builder.js"), exports);
|
|
31
31
|
__exportStar(require("./schema/column-definition-builder.js"), exports);
|
|
32
|
+
__exportStar(require("./schema/foreign-key-constraint-builder.js"), exports);
|
|
32
33
|
__exportStar(require("./schema/alter-table-builder.js"), exports);
|
|
33
34
|
__exportStar(require("./dynamic/dynamic.js"), exports);
|
|
34
35
|
__exportStar(require("./driver/driver.js"), exports);
|
package/dist/cjs/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/cjs/kysely.js
CHANGED
|
@@ -13,6 +13,7 @@ const runtime_driver_js_1 = require("./driver/runtime-driver.js");
|
|
|
13
13
|
const single_connection_provider_js_1 = require("./driver/single-connection-provider.js");
|
|
14
14
|
const driver_js_1 = require("./driver/driver.js");
|
|
15
15
|
const prevent_await_js_1 = require("./util/prevent-await.js");
|
|
16
|
+
const parse_context_js_1 = require("./parser/parse-context.js");
|
|
16
17
|
/**
|
|
17
18
|
* The main Kysely class.
|
|
18
19
|
*
|
|
@@ -57,7 +58,7 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
57
58
|
#props;
|
|
58
59
|
constructor(args) {
|
|
59
60
|
if (isKyselyProps(args)) {
|
|
60
|
-
super({ executor: args.executor,
|
|
61
|
+
super({ executor: args.executor, parseContext: args.parseContext });
|
|
61
62
|
this.#props = (0, object_utils_js_1.freeze)(args);
|
|
62
63
|
}
|
|
63
64
|
else {
|
|
@@ -65,16 +66,17 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
65
66
|
const driver = dialect.createDriver();
|
|
66
67
|
const compiler = dialect.createQueryCompiler();
|
|
67
68
|
const adapter = dialect.createAdapter();
|
|
69
|
+
const parseContext = new parse_context_js_1.DefaultParseContext(adapter);
|
|
68
70
|
const runtimeDriver = new runtime_driver_js_1.RuntimeDriver(driver);
|
|
69
71
|
const connectionProvider = new default_connection_provider_js_1.DefaultConnectionProvider(runtimeDriver);
|
|
70
72
|
const executor = new default_query_executor_js_1.DefaultQueryExecutor(compiler, connectionProvider, args.plugins ?? []);
|
|
71
|
-
super({ executor,
|
|
73
|
+
super({ executor, parseContext });
|
|
72
74
|
this.#props = (0, object_utils_js_1.freeze)({
|
|
73
75
|
config: args,
|
|
74
76
|
executor,
|
|
75
|
-
adapter,
|
|
76
77
|
dialect,
|
|
77
|
-
driver,
|
|
78
|
+
driver: runtimeDriver,
|
|
79
|
+
parseContext,
|
|
78
80
|
});
|
|
79
81
|
}
|
|
80
82
|
}
|
|
@@ -88,7 +90,7 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
88
90
|
* Returns the {@link MigrationModule} module for managing and running migrations.
|
|
89
91
|
*/
|
|
90
92
|
get migration() {
|
|
91
|
-
return new migration_js_1.MigrationModule(this, this.#props.adapter);
|
|
93
|
+
return new migration_js_1.MigrationModule(this, this.#props.parseContext.adapter);
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
94
96
|
* Returns a the {@link DynamicModule} module.
|
|
@@ -248,7 +250,7 @@ function isKyselyProps(obj) {
|
|
|
248
250
|
(0, object_utils_js_1.isObject)(obj.driver) &&
|
|
249
251
|
(0, object_utils_js_1.isObject)(obj.executor) &&
|
|
250
252
|
(0, object_utils_js_1.isObject)(obj.dialect) &&
|
|
251
|
-
(0, object_utils_js_1.isObject)(obj.
|
|
253
|
+
(0, object_utils_js_1.isObject)(obj.parseContext));
|
|
252
254
|
}
|
|
253
255
|
exports.isKyselyProps = isKyselyProps;
|
|
254
256
|
class ConnectionBuilder {
|
|
@@ -276,7 +278,7 @@ exports.ConnectionBuilder = ConnectionBuilder;
|
|
|
276
278
|
class TransactionBuilder {
|
|
277
279
|
#props;
|
|
278
280
|
constructor(props) {
|
|
279
|
-
this.#props = props;
|
|
281
|
+
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
280
282
|
}
|
|
281
283
|
setIsolationLevel(isolationLevel) {
|
|
282
284
|
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
|
}>;
|
|
@@ -3,11 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CreateTableNode = void 0;
|
|
4
4
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
5
|
const check_constraint_node_js_1 = require("./check-constraint-node.js");
|
|
6
|
-
const table_node_js_1 = require("./table-node.js");
|
|
7
6
|
const primary_constraint_node_js_1 = require("./primary-constraint-node.js");
|
|
8
7
|
const unique_constraint_node_js_1 = require("./unique-constraint-node.js");
|
|
9
|
-
const foreign_key_constraint_node_js_1 = require("./foreign-key-constraint-node.js");
|
|
10
|
-
const column_node_js_1 = require("./column-node.js");
|
|
11
8
|
/**
|
|
12
9
|
* @internal
|
|
13
10
|
*/
|
|
@@ -61,8 +58,7 @@ exports.CreateTableNode = (0, object_utils_js_1.freeze)({
|
|
|
61
58
|
: (0, object_utils_js_1.freeze)([constraint]),
|
|
62
59
|
});
|
|
63
60
|
},
|
|
64
|
-
cloneWithForeignKeyConstraint(createTable,
|
|
65
|
-
const constraint = foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(sourceColumns.map(column_node_js_1.ColumnNode.create), table_node_js_1.TableNode.create(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName);
|
|
61
|
+
cloneWithForeignKeyConstraint(createTable, constraint) {
|
|
66
62
|
return (0, object_utils_js_1.freeze)({
|
|
67
63
|
...createTable,
|
|
68
64
|
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
|
}>;
|
|
@@ -19,4 +19,10 @@ exports.ForeignKeyConstraintNode = (0, object_utils_js_1.freeze)({
|
|
|
19
19
|
name: constraintName ? identifier_node_js_1.IdentifierNode.create(constraintName) : undefined,
|
|
20
20
|
});
|
|
21
21
|
},
|
|
22
|
+
cloneWith(node, props) {
|
|
23
|
+
return (0, object_utils_js_1.freeze)({
|
|
24
|
+
...node,
|
|
25
|
+
...props,
|
|
26
|
+
});
|
|
27
|
+
},
|
|
22
28
|
});
|
|
@@ -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
|
}>;
|
|
@@ -19,6 +19,14 @@ exports.JoinNode = (0, object_utils_js_1.freeze)({
|
|
|
19
19
|
on: undefined,
|
|
20
20
|
});
|
|
21
21
|
},
|
|
22
|
+
createWithOn(joinType, table, on) {
|
|
23
|
+
return (0, object_utils_js_1.freeze)({
|
|
24
|
+
kind: 'JoinNode',
|
|
25
|
+
joinType,
|
|
26
|
+
table,
|
|
27
|
+
on,
|
|
28
|
+
});
|
|
29
|
+
},
|
|
22
30
|
cloneWithOn(joinNode, op, on) {
|
|
23
31
|
return (0, object_utils_js_1.freeze)({
|
|
24
32
|
...joinNode,
|
|
@@ -399,6 +399,8 @@ class OperationNodeTransformer {
|
|
|
399
399
|
columns: this.transformNodeList(node.columns),
|
|
400
400
|
references: this.transformNode(node.references),
|
|
401
401
|
name: this.transformNode(node.name),
|
|
402
|
+
onDelete: node.onDelete,
|
|
403
|
+
onUpdate: node.onUpdate,
|
|
402
404
|
};
|
|
403
405
|
}
|
|
404
406
|
transformReferences(node) {
|
|
@@ -407,6 +409,7 @@ class OperationNodeTransformer {
|
|
|
407
409
|
table: this.transformNode(node.table),
|
|
408
410
|
columns: this.transformNodeList(node.columns),
|
|
409
411
|
onDelete: node.onDelete,
|
|
412
|
+
onUpdate: node.onUpdate,
|
|
410
413
|
};
|
|
411
414
|
}
|
|
412
415
|
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
|
}>;
|
|
@@ -11,10 +11,10 @@ exports.TableNode = (0, object_utils_js_1.freeze)({
|
|
|
11
11
|
return node.kind === 'TableNode';
|
|
12
12
|
},
|
|
13
13
|
create(table) {
|
|
14
|
-
return {
|
|
14
|
+
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'TableNode',
|
|
16
16
|
table: identifier_node_js_1.IdentifierNode.create(table),
|
|
17
|
-
};
|
|
17
|
+
});
|
|
18
18
|
},
|
|
19
19
|
createWithSchema(schema, table) {
|
|
20
20
|
return (0, object_utils_js_1.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,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseDataTypeExpression = void 0;
|
|
4
|
+
const data_type_node_js_1 = require("../operation-node/data-type-node.js");
|
|
5
|
+
const operation_node_source_js_1 = require("../operation-node/operation-node-source.js");
|
|
6
|
+
function parseDataTypeExpression(dataType) {
|
|
7
|
+
return (0, operation_node_source_js_1.isOperationNodeSource)(dataType)
|
|
8
|
+
? dataType.toOperationNode()
|
|
9
|
+
: data_type_node_js_1.DataTypeNode.create(dataType);
|
|
10
|
+
}
|
|
11
|
+
exports.parseDataTypeExpression = parseDataTypeExpression;
|
|
@@ -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,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseDefaultValueExpression = void 0;
|
|
4
|
+
const operation_node_source_js_1 = require("../operation-node/operation-node-source.js");
|
|
5
|
+
const value_node_js_1 = require("../operation-node/value-node.js");
|
|
6
|
+
function parseDefaultValueExpression(value) {
|
|
7
|
+
return (0, operation_node_source_js_1.isOperationNodeSource)(value)
|
|
8
|
+
? value.toOperationNode()
|
|
9
|
+
: value_node_js_1.ValueNode.createImmediate(value);
|
|
10
|
+
}
|
|
11
|
+
exports.parseDefaultValueExpression = parseDefaultValueExpression;
|
|
@@ -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;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
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");
|
|
@@ -11,13 +11,12 @@ const reference_parser_js_1 = require("./reference-parser.js");
|
|
|
11
11
|
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
|
-
const table_parser_js_1 = require("./table-parser.js");
|
|
15
14
|
function parseWhereFilter(ctx, args) {
|
|
16
15
|
if (args.length === 3) {
|
|
17
16
|
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
18
17
|
}
|
|
19
18
|
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
20
|
-
return
|
|
19
|
+
return parseWhereGroup(ctx, args[0]);
|
|
21
20
|
}
|
|
22
21
|
else {
|
|
23
22
|
throw new Error(`invalid arguments passed to a where method ${JSON.stringify(args)}`);
|
|
@@ -29,7 +28,7 @@ function parseHavingFilter(ctx, args) {
|
|
|
29
28
|
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
30
29
|
}
|
|
31
30
|
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
32
|
-
return
|
|
31
|
+
return parseHavingGroup(ctx, args[0]);
|
|
33
32
|
}
|
|
34
33
|
else {
|
|
35
34
|
throw new Error(`invalid arguments passed to a having method ${JSON.stringify(args)}`);
|
|
@@ -41,7 +40,7 @@ function parseOnFilter(ctx, args) {
|
|
|
41
40
|
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
42
41
|
}
|
|
43
42
|
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
44
|
-
return
|
|
43
|
+
return parseOnGroup(ctx, args[0]);
|
|
45
44
|
}
|
|
46
45
|
else {
|
|
47
46
|
throw new Error(`invalid arguments passed to an on method ${JSON.stringify(args)}`);
|
|
@@ -52,23 +51,14 @@ function parseReferenceFilter(ctx, lhs, op, rhs) {
|
|
|
52
51
|
return filter_node_js_1.FilterNode.create((0, reference_parser_js_1.parseReferenceExpression)(ctx, lhs), parseFilterOperator(op), (0, reference_parser_js_1.parseReferenceExpression)(ctx, rhs));
|
|
53
52
|
}
|
|
54
53
|
exports.parseReferenceFilter = parseReferenceFilter;
|
|
55
|
-
function
|
|
56
|
-
return
|
|
54
|
+
function parseExistFilter(ctx, arg) {
|
|
55
|
+
return parseExistExpression(ctx, 'exists', arg);
|
|
57
56
|
}
|
|
58
|
-
exports.
|
|
59
|
-
function
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
exports.parseNotExistExpression = parseNotExistExpression;
|
|
63
|
-
function doParseExistExpression(ctx, type, arg) {
|
|
64
|
-
const node = (0, object_utils_js_1.isFunction)(arg)
|
|
65
|
-
? arg(ctx.createSubQueryBuilder()).toOperationNode()
|
|
66
|
-
: arg.toOperationNode();
|
|
67
|
-
if (!select_query_node_js_1.SelectQueryNode.is(node) && !raw_node_js_1.RawNode.is(node)) {
|
|
68
|
-
throw new Error('invalid where exists arg');
|
|
69
|
-
}
|
|
70
|
-
return filter_node_js_1.FilterNode.create(undefined, operator_node_js_1.OperatorNode.create(type), node);
|
|
57
|
+
exports.parseExistFilter = parseExistFilter;
|
|
58
|
+
function parseNotExistFilter(ctx, arg) {
|
|
59
|
+
return parseExistExpression(ctx, 'not exists', arg);
|
|
71
60
|
}
|
|
61
|
+
exports.parseNotExistFilter = parseNotExistFilter;
|
|
72
62
|
function parseThreeArgFilter(ctx, left, op, right) {
|
|
73
63
|
if ((op === 'is' || op === 'is not') && ((0, object_utils_js_1.isNull)(right) || (0, object_utils_js_1.isBoolean)(right))) {
|
|
74
64
|
return parseIsFilter(ctx, left, op, right);
|
|
@@ -79,38 +69,46 @@ function parseIsFilter(ctx, left, op, right) {
|
|
|
79
69
|
return filter_node_js_1.FilterNode.create((0, reference_parser_js_1.parseReferenceExpression)(ctx, left), parseFilterOperator(op), value_node_js_1.ValueNode.createImmediate(right));
|
|
80
70
|
}
|
|
81
71
|
function parseFilterOperator(op) {
|
|
82
|
-
if ((0,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
else if ((0, object_utils_js_1.isString)(op)) {
|
|
86
|
-
const opString = op.trim().toLowerCase();
|
|
87
|
-
if (operator_node_js_1.OPERATORS.some((it) => it === opString)) {
|
|
88
|
-
return operator_node_js_1.OperatorNode.create(opString);
|
|
72
|
+
if ((0, object_utils_js_1.isString)(op)) {
|
|
73
|
+
if (operator_node_js_1.OPERATORS.includes(op)) {
|
|
74
|
+
return operator_node_js_1.OperatorNode.create(op);
|
|
89
75
|
}
|
|
90
76
|
}
|
|
77
|
+
else if ((0, operation_node_source_js_1.isOperationNodeSource)(op)) {
|
|
78
|
+
return op.toOperationNode();
|
|
79
|
+
}
|
|
91
80
|
throw new Error(`invalid comparison operator ${JSON.stringify(op)} passed to a filter method`);
|
|
92
81
|
}
|
|
93
|
-
function
|
|
94
|
-
const query =
|
|
82
|
+
function parseWhereGroup(ctx, callback) {
|
|
83
|
+
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
95
84
|
const queryNode = query.toOperationNode();
|
|
96
85
|
if (!queryNode.where) {
|
|
97
|
-
throw new Error('no where methods called insided a
|
|
86
|
+
throw new Error('no `where*` methods called insided a group callback');
|
|
98
87
|
}
|
|
99
88
|
return parens_node_js_1.ParensNode.create(queryNode.where.where);
|
|
100
89
|
}
|
|
101
|
-
function
|
|
102
|
-
const query =
|
|
90
|
+
function parseHavingGroup(ctx, callback) {
|
|
91
|
+
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
103
92
|
const queryNode = query.toOperationNode();
|
|
104
93
|
if (!queryNode.having) {
|
|
105
|
-
throw new Error('no having methods called insided a
|
|
94
|
+
throw new Error('no `having*` methods called insided a group callback');
|
|
106
95
|
}
|
|
107
96
|
return parens_node_js_1.ParensNode.create(queryNode.having.having);
|
|
108
97
|
}
|
|
109
|
-
function
|
|
110
|
-
const joinBuilder =
|
|
98
|
+
function parseOnGroup(ctx, callback) {
|
|
99
|
+
const joinBuilder = callback(ctx.createJoinBuilder('InnerJoin', 'table'));
|
|
111
100
|
const joinNode = joinBuilder.toOperationNode();
|
|
112
101
|
if (!joinNode.on) {
|
|
113
|
-
throw new Error('no `on
|
|
102
|
+
throw new Error('no `on*` methods called insided a group callback');
|
|
114
103
|
}
|
|
115
104
|
return parens_node_js_1.ParensNode.create(joinNode.on);
|
|
116
105
|
}
|
|
106
|
+
function parseExistExpression(ctx, type, arg) {
|
|
107
|
+
const node = (0, object_utils_js_1.isFunction)(arg)
|
|
108
|
+
? arg(ctx.createExpressionBuilder()).toOperationNode()
|
|
109
|
+
: arg.toOperationNode();
|
|
110
|
+
if (!select_query_node_js_1.SelectQueryNode.is(node) && !raw_node_js_1.RawNode.is(node)) {
|
|
111
|
+
throw new Error('invalid where exists arg');
|
|
112
|
+
}
|
|
113
|
+
return filter_node_js_1.FilterNode.create(undefined, operator_node_js_1.OperatorNode.create(type), node);
|
|
114
|
+
}
|
|
@@ -5,4 +5,4 @@ import { JoinBuilder } from '../query-builder/join-builder.js';
|
|
|
5
5
|
import { ParseContext } from './parse-context.js';
|
|
6
6
|
export declare type JoinReferenceExpression<DB, TB extends keyof DB, F> = AnyColumn<TableExpressionDatabaseType<DB, F>, TB | ExtractAliasFromTableExpression<DB, F>> | AnyColumnWithTable<TableExpressionDatabaseType<DB, F>, TB | ExtractAliasFromTableExpression<DB, F>>;
|
|
7
7
|
export declare type JoinCallbackExpression<DB, TB extends keyof DB, F> = (join: JoinBuilder<TableExpressionDatabaseType<DB, F>, TB | ExtractAliasFromTableExpression<DB, F>>) => JoinBuilder<any, any>;
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function parseJoin(ctx: ParseContext, joinType: JoinType, args: any[]): JoinNode;
|
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseJoin = void 0;
|
|
4
4
|
const join_node_js_1 = require("../operation-node/join-node.js");
|
|
5
5
|
const table_parser_js_1 = require("./table-parser.js");
|
|
6
6
|
const filter_parser_js_1 = require("./filter-parser.js");
|
|
7
|
-
function
|
|
8
|
-
if (args.length ===
|
|
9
|
-
return parseCallbackJoin(ctx, joinType, args[0], args[1]);
|
|
10
|
-
}
|
|
11
|
-
else if (args.length === 3) {
|
|
7
|
+
function parseJoin(ctx, joinType, args) {
|
|
8
|
+
if (args.length === 3) {
|
|
12
9
|
return parseSingleOnJoin(ctx, joinType, args[0], args[1], args[2]);
|
|
13
10
|
}
|
|
11
|
+
else if (args.length === 2) {
|
|
12
|
+
return parseCallbackJoin(ctx, joinType, args[0], args[1]);
|
|
13
|
+
}
|
|
14
14
|
else {
|
|
15
15
|
throw new Error('not implemented');
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
exports.
|
|
18
|
+
exports.parseJoin = parseJoin;
|
|
19
19
|
function parseCallbackJoin(ctx, joinType, from, callback) {
|
|
20
|
-
const
|
|
21
|
-
const joinBuilder = callback(ctx.createJoinBuilder(joinType, tableNode));
|
|
20
|
+
const joinBuilder = callback(ctx.createJoinBuilder(joinType, from));
|
|
22
21
|
return joinBuilder.toOperationNode();
|
|
23
22
|
}
|
|
24
23
|
function parseSingleOnJoin(ctx, joinType, from, lhsColumn, rhsColumn) {
|
|
25
|
-
|
|
26
|
-
return join_node_js_1.JoinNode.cloneWithOn(join_node_js_1.JoinNode.create(joinType, tableNode), 'And', (0, filter_parser_js_1.parseReferenceFilter)(ctx, lhsColumn, '=', rhsColumn));
|
|
24
|
+
return join_node_js_1.JoinNode.createWithOn(joinType, (0, table_parser_js_1.parseTableExpression)(ctx, from), (0, filter_parser_js_1.parseReferenceFilter)(ctx, lhsColumn, '=', rhsColumn));
|
|
27
25
|
}
|
|
@@ -1,14 +1,41 @@
|
|
|
1
1
|
import { DialectAdapter } from '../dialect/dialect-adapter.js';
|
|
2
2
|
import { JoinType } from '../operation-node/join-node.js';
|
|
3
|
-
import { TableExpressionNode } from '../operation-node/operation-node-utils.js';
|
|
4
3
|
import { JoinBuilder } from '../query-builder/join-builder.js';
|
|
5
4
|
import { QueryBuilder } from '../query-builder/query-builder.js';
|
|
6
|
-
import {
|
|
5
|
+
import { ExpressionBuilder } from '../query-builder/expression-builder.js';
|
|
7
6
|
import { QueryCreator } from '../query-creator.js';
|
|
7
|
+
import { TableExpression } from './table-parser.js';
|
|
8
|
+
/**
|
|
9
|
+
* This interface exposes everything the parsers need to be able to parse
|
|
10
|
+
* method calls into {@link OperationNode} trees.
|
|
11
|
+
*/
|
|
8
12
|
export interface ParseContext {
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
readonly adapter: DialectAdapter;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a select query builder with a {@link NoopQueryExecutor}.
|
|
16
|
+
*/
|
|
17
|
+
createSelectQueryBuilder(tables: ReadonlyArray<TableExpression<any, any>>): QueryBuilder<any, any>;
|
|
18
|
+
/**
|
|
19
|
+
* Creates an instance of a join builder.
|
|
20
|
+
*/
|
|
21
|
+
createJoinBuilder(joinType: JoinType, table: TableExpression<any, any>): JoinBuilder<any, any>;
|
|
22
|
+
/**
|
|
23
|
+
* Creates an expression builder for building stuff like subqueries.
|
|
24
|
+
* {@link NoopQueryExecutor} is used as the executor and the queries
|
|
25
|
+
* built using the returned builder can never be executed.
|
|
26
|
+
*/
|
|
27
|
+
createExpressionBuilder(): ExpressionBuilder<any, any>;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a query creator with a {@link NoopQueryExecutor}.
|
|
30
|
+
*/
|
|
31
|
+
createQueryCreator(): QueryCreator<any>;
|
|
32
|
+
}
|
|
33
|
+
export declare class DefaultParseContext implements ParseContext {
|
|
34
|
+
#private;
|
|
35
|
+
constructor(adapter: DialectAdapter);
|
|
36
|
+
get adapter(): DialectAdapter;
|
|
37
|
+
createSelectQueryBuilder(tables: ReadonlyArray<TableExpression<any, any>>): QueryBuilder<any, any>;
|
|
38
|
+
createJoinBuilder(joinType: JoinType, table: TableExpression<any, any>): JoinBuilder<any, any>;
|
|
39
|
+
createExpressionBuilder(): ExpressionBuilder<any, any>;
|
|
11
40
|
createQueryCreator(): QueryCreator<any>;
|
|
12
|
-
createJoinBuilder(joinType: JoinType, tableNode: TableExpressionNode): JoinBuilder<any, any>;
|
|
13
41
|
}
|
|
14
|
-
export declare function createParseContext(adapter: DialectAdapter): ParseContext;
|