kysely 0.9.7 → 0.10.1
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 +15 -13
- package/dist/cjs/driver/runtime-driver.js +3 -4
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/operation-node/column-definition-node.d.ts +8 -6
- package/dist/cjs/operation-node/column-definition-node.js +4 -4
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -2
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -3
- package/dist/cjs/operation-node/create-table-node.js +2 -2
- package/dist/cjs/operation-node/create-view-node.d.ts +22 -0
- package/dist/cjs/operation-node/create-view-node.js +25 -0
- package/dist/cjs/operation-node/default-value-node.d.ts +14 -0
- package/dist/cjs/operation-node/default-value-node.js +18 -0
- package/dist/cjs/operation-node/drop-index-node.d.ts +1 -2
- package/dist/cjs/operation-node/drop-schema-node.d.ts +2 -3
- package/dist/cjs/operation-node/drop-schema-node.js +3 -3
- package/dist/cjs/operation-node/drop-table-node.d.ts +2 -3
- package/dist/cjs/operation-node/drop-table-node.js +2 -2
- package/dist/cjs/operation-node/drop-view-node.d.ts +17 -0
- package/dist/cjs/operation-node/drop-view-node.js +25 -0
- package/dist/cjs/operation-node/generated-always-as-node.d.ts +16 -0
- package/dist/cjs/operation-node/generated-always-as-node.js +25 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +47 -11
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +7 -2
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.js +5 -0
- package/dist/cjs/operation-node/raw-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.js +1 -1
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +22 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.js +21 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +59 -11
- package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
- package/dist/cjs/raw-builder/raw-builder.d.ts +1 -1
- package/dist/cjs/schema/alter-table-builder.d.ts +6 -2
- package/dist/cjs/schema/alter-table-builder.js +28 -4
- package/dist/cjs/schema/column-definition-builder.d.ts +43 -2
- package/dist/cjs/schema/column-definition-builder.js +23 -6
- package/dist/cjs/schema/create-schema-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +7 -8
- package/dist/cjs/schema/create-table-builder.js +8 -9
- package/dist/cjs/schema/create-view-builder.d.ts +24 -0
- package/dist/cjs/schema/create-view-builder.js +73 -0
- package/dist/cjs/schema/drop-index-builder.js +1 -1
- package/dist/cjs/schema/drop-schema-builder.js +3 -1
- package/dist/cjs/schema/drop-table-builder.js +3 -1
- package/dist/cjs/schema/drop-view-builder.d.ts +20 -0
- package/dist/cjs/schema/drop-view-builder.js +39 -0
- package/dist/cjs/schema/schema.d.ts +30 -3
- package/dist/cjs/schema/schema.js +44 -3
- package/dist/cjs/util/performance-now.d.ts +1 -0
- package/dist/cjs/util/performance-now.js +13 -0
- package/dist/esm/driver/runtime-driver.js +3 -4
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/operation-node/column-definition-node.d.ts +8 -6
- package/dist/esm/operation-node/column-definition-node.js +4 -4
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -2
- package/dist/esm/operation-node/create-table-node.d.ts +2 -3
- package/dist/esm/operation-node/create-table-node.js +2 -2
- package/dist/esm/operation-node/create-view-node.d.ts +22 -0
- package/dist/esm/operation-node/create-view-node.js +22 -0
- package/dist/esm/operation-node/default-value-node.d.ts +14 -0
- package/dist/esm/operation-node/default-value-node.js +15 -0
- package/dist/esm/operation-node/drop-index-node.d.ts +1 -2
- package/dist/esm/operation-node/drop-schema-node.d.ts +2 -3
- package/dist/esm/operation-node/drop-schema-node.js +3 -3
- package/dist/esm/operation-node/drop-table-node.d.ts +2 -3
- package/dist/esm/operation-node/drop-table-node.js +2 -2
- package/dist/esm/operation-node/drop-view-node.d.ts +17 -0
- package/dist/esm/operation-node/drop-view-node.js +22 -0
- package/dist/esm/operation-node/generated-always-as-node.d.ts +16 -0
- package/dist/esm/operation-node/generated-always-as-node.js +22 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +47 -11
- package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-visitor.js +7 -2
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.js +5 -0
- package/dist/esm/operation-node/raw-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.js +1 -1
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +18 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.js +17 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/esm/query-compiler/default-query-compiler.js +59 -11
- package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
- package/dist/esm/raw-builder/raw-builder.d.ts +1 -1
- package/dist/esm/schema/alter-table-builder.d.ts +6 -2
- package/dist/esm/schema/alter-table-builder.js +28 -4
- package/dist/esm/schema/column-definition-builder.d.ts +43 -2
- package/dist/esm/schema/column-definition-builder.js +23 -6
- package/dist/esm/schema/create-schema-builder.js +1 -1
- package/dist/esm/schema/create-table-builder.d.ts +7 -8
- package/dist/esm/schema/create-table-builder.js +8 -9
- package/dist/esm/schema/create-view-builder.d.ts +24 -0
- package/dist/esm/schema/create-view-builder.js +69 -0
- package/dist/esm/schema/drop-index-builder.js +1 -1
- package/dist/esm/schema/drop-schema-builder.js +3 -1
- package/dist/esm/schema/drop-table-builder.js +3 -1
- package/dist/esm/schema/drop-view-builder.d.ts +20 -0
- package/dist/esm/schema/drop-view-builder.js +35 -0
- package/dist/esm/schema/schema.d.ts +30 -3
- package/dist/esm/schema/schema.js +44 -3
- package/dist/esm/util/performance-now.d.ts +1 -0
- package/dist/esm/util/performance-now.js +9 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -67,7 +67,9 @@ import { Kysely, PostgresDialect } from 'kysely'
|
|
|
67
67
|
interface Person {
|
|
68
68
|
id: number
|
|
69
69
|
first_name: string
|
|
70
|
-
|
|
70
|
+
// If the column is nullable in the db, make its type nullable.
|
|
71
|
+
// Don't use optional properties.
|
|
72
|
+
last_name: string | null
|
|
71
73
|
gender: 'male' | 'female' | 'other'
|
|
72
74
|
}
|
|
73
75
|
|
|
@@ -172,9 +174,9 @@ export async function up(db: Kysely<any>): Promise<void> {
|
|
|
172
174
|
await db.schema
|
|
173
175
|
.createTable('person')
|
|
174
176
|
.addColumn('id', 'serial', (col) => col.primaryKey())
|
|
175
|
-
.addColumn('first_name', 'varchar')
|
|
177
|
+
.addColumn('first_name', 'varchar', (col) => col.notNull())
|
|
176
178
|
.addColumn('last_name', 'varchar')
|
|
177
|
-
.addColumn('gender', 'varchar(50)')
|
|
179
|
+
.addColumn('gender', 'varchar(50)', (col) => col.notNull())
|
|
178
180
|
.execute()
|
|
179
181
|
|
|
180
182
|
await db.schema
|
|
@@ -182,9 +184,9 @@ export async function up(db: Kysely<any>): Promise<void> {
|
|
|
182
184
|
.addColumn('id', 'serial', (col) => col.primaryKey())
|
|
183
185
|
.addColumn('name', 'varchar', (col) => col.notNull().unique())
|
|
184
186
|
.addColumn('owner_id', 'integer', (col) =>
|
|
185
|
-
col.references('person.id').onDelete('cascade')
|
|
187
|
+
col.references('person.id').onDelete('cascade').notNull()
|
|
186
188
|
)
|
|
187
|
-
.addColumn('species', 'varchar')
|
|
189
|
+
.addColumn('species', 'varchar', (col) => col.notNull())
|
|
188
190
|
.execute()
|
|
189
191
|
|
|
190
192
|
await db.schema
|
|
@@ -208,18 +210,18 @@ import { Kysely } from 'kysely'
|
|
|
208
210
|
export async function up(db: Kysely<any>): Promise<void> {
|
|
209
211
|
await db.schema
|
|
210
212
|
.createTable('person')
|
|
211
|
-
.addColumn('id', 'integer', (col) => col.
|
|
212
|
-
.addColumn('first_name', 'varchar')
|
|
213
|
-
.addColumn('last_name', 'varchar')
|
|
214
|
-
.addColumn('gender', 'varchar(50)')
|
|
213
|
+
.addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey())
|
|
214
|
+
.addColumn('first_name', 'varchar(255)', (col) => col.notNull())
|
|
215
|
+
.addColumn('last_name', 'varchar(255)')
|
|
216
|
+
.addColumn('gender', 'varchar(50)', (col) => col.notNull())
|
|
215
217
|
.execute()
|
|
216
218
|
|
|
217
219
|
await db.schema
|
|
218
220
|
.createTable('pet')
|
|
219
|
-
.addColumn('id', 'integer', (col) => col.
|
|
220
|
-
.addColumn('name', 'varchar', (col) => col.notNull().unique())
|
|
221
|
-
.addColumn('owner_id', 'integer')
|
|
222
|
-
.addColumn('species', 'varchar')
|
|
221
|
+
.addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey())
|
|
222
|
+
.addColumn('name', 'varchar(255)', (col) => col.notNull().unique())
|
|
223
|
+
.addColumn('owner_id', 'integer', (col) => col.notNull())
|
|
224
|
+
.addColumn('species', 'varchar(255)', (col) => col.notNull())
|
|
223
225
|
.addForeignKeyConstraint(
|
|
224
226
|
'pet_owner_id_fk', ['owner_id'], 'person', ['id'],
|
|
225
227
|
(cb) => cb.onDelete('cascade')
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RuntimeDriver = void 0;
|
|
4
|
+
const performance_now_js_1 = require("../util/performance-now.js");
|
|
4
5
|
/**
|
|
5
6
|
* A small wrapper around {@link Driver} that makes sure the driver is
|
|
6
7
|
* initialized before it is used, only initialized and destroyed
|
|
@@ -75,7 +76,7 @@ class RuntimeConnection {
|
|
|
75
76
|
this.#log = log;
|
|
76
77
|
}
|
|
77
78
|
async executeQuery(compiledQuery) {
|
|
78
|
-
const startTime =
|
|
79
|
+
const startTime = (0, performance_now_js_1.performanceNow)();
|
|
79
80
|
try {
|
|
80
81
|
return await this.#connection.executeQuery(compiledQuery);
|
|
81
82
|
}
|
|
@@ -101,8 +102,6 @@ class RuntimeConnection {
|
|
|
101
102
|
}));
|
|
102
103
|
}
|
|
103
104
|
#calculateDurationMillis(startTime) {
|
|
104
|
-
|
|
105
|
-
const durationNanos = Number(endTime - startTime);
|
|
106
|
-
return durationNanos / 1_000_000;
|
|
105
|
+
return (0, performance_now_js_1.performanceNow)() - startTime;
|
|
107
106
|
}
|
|
108
107
|
}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export * from './schema/drop-schema-builder.js';
|
|
|
19
19
|
export * from './schema/column-definition-builder.js';
|
|
20
20
|
export * from './schema/foreign-key-constraint-builder.js';
|
|
21
21
|
export * from './schema/alter-table-builder.js';
|
|
22
|
+
export * from './schema/create-view-builder.js';
|
|
23
|
+
export * from './schema/drop-view-builder.js';
|
|
22
24
|
export * from './dynamic/dynamic.js';
|
|
23
25
|
export * from './driver/driver.js';
|
|
24
26
|
export * from './driver/database-connection.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -31,6 +31,8 @@ __exportStar(require("./schema/drop-schema-builder.js"), exports);
|
|
|
31
31
|
__exportStar(require("./schema/column-definition-builder.js"), exports);
|
|
32
32
|
__exportStar(require("./schema/foreign-key-constraint-builder.js"), exports);
|
|
33
33
|
__exportStar(require("./schema/alter-table-builder.js"), exports);
|
|
34
|
+
__exportStar(require("./schema/create-view-builder.js"), exports);
|
|
35
|
+
__exportStar(require("./schema/drop-view-builder.js"), exports);
|
|
34
36
|
__exportStar(require("./dynamic/dynamic.js"), exports);
|
|
35
37
|
__exportStar(require("./driver/driver.js"), exports);
|
|
36
38
|
__exportStar(require("./driver/database-connection.js"), exports);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CheckConstraintNode } from './check-constraint-node.js';
|
|
2
2
|
import { ColumnNode } from './column-node.js';
|
|
3
3
|
import { DataTypeNode } from './data-type-node.js';
|
|
4
|
+
import { DefaultValueNode } from './default-value-node.js';
|
|
5
|
+
import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
|
|
4
6
|
import { OperationNode } from './operation-node.js';
|
|
5
7
|
import { RawNode } from './raw-node.js';
|
|
6
8
|
import { ReferencesNode } from './references-node.js';
|
|
7
|
-
import { ValueNode } from './value-node.js';
|
|
8
9
|
export declare type ColumnDefinitionNodeProps = Omit<Partial<ColumnDefinitionNode>, 'kind'>;
|
|
9
10
|
export declare type ColumnDataTypeNode = DataTypeNode | RawNode;
|
|
10
11
|
export interface ColumnDefinitionNode extends OperationNode {
|
|
@@ -12,12 +13,13 @@ export interface ColumnDefinitionNode extends OperationNode {
|
|
|
12
13
|
readonly column: ColumnNode;
|
|
13
14
|
readonly dataType: ColumnDataTypeNode;
|
|
14
15
|
readonly references?: ReferencesNode;
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
19
|
-
readonly defaultTo?:
|
|
16
|
+
readonly primaryKey: boolean;
|
|
17
|
+
readonly autoIncrement: boolean;
|
|
18
|
+
readonly unique: boolean;
|
|
19
|
+
readonly nullable: boolean;
|
|
20
|
+
readonly defaultTo?: DefaultValueNode;
|
|
20
21
|
readonly check?: CheckConstraintNode;
|
|
22
|
+
readonly generatedAlwaysAs?: GeneratedAlwaysAsNode;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* @internal
|
|
@@ -15,10 +15,10 @@ exports.ColumnDefinitionNode = (0, object_utils_js_1.freeze)({
|
|
|
15
15
|
kind: 'ColumnDefinitionNode',
|
|
16
16
|
column: column_node_js_1.ColumnNode.create(column),
|
|
17
17
|
dataType,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
primaryKey: false,
|
|
19
|
+
autoIncrement: false,
|
|
20
|
+
unique: false,
|
|
21
|
+
nullable: true,
|
|
22
22
|
});
|
|
23
23
|
},
|
|
24
24
|
cloneWith(node, props) {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare type CreateSchemaNodeModifier = 'IfNotExists';
|
|
4
3
|
export declare type CreateSchemaNodeParams = Omit<Partial<CreateSchemaNode>, 'kind' | 'schema'>;
|
|
5
4
|
export interface CreateSchemaNode extends OperationNode {
|
|
6
5
|
readonly kind: 'CreateSchemaNode';
|
|
7
6
|
readonly schema: IdentifierNode;
|
|
8
|
-
readonly
|
|
7
|
+
readonly ifNotExists?: boolean;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* @internal
|
|
@@ -2,12 +2,11 @@ import { OperationNode } from './operation-node.js';
|
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
3
|
import { ConstraintNode } from './constraint-node.js';
|
|
4
4
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
5
|
-
export declare type CreateTableNodeModifier = 'IfNotExists';
|
|
6
5
|
export interface CreateTableNode extends OperationNode {
|
|
7
6
|
readonly kind: 'CreateTableNode';
|
|
8
7
|
readonly table: TableNode;
|
|
9
8
|
readonly columns: ReadonlyArray<ColumnDefinitionNode>;
|
|
10
|
-
readonly
|
|
9
|
+
readonly ifNotExists?: boolean;
|
|
11
10
|
readonly constraints?: ReadonlyArray<ConstraintNode>;
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
@@ -17,6 +16,6 @@ export declare const CreateTableNode: Readonly<{
|
|
|
17
16
|
is(node: OperationNode): node is CreateTableNode;
|
|
18
17
|
create(table: TableNode): CreateTableNode;
|
|
19
18
|
cloneWithColumn(createTable: CreateTableNode, column: ColumnDefinitionNode): CreateTableNode;
|
|
20
|
-
|
|
19
|
+
cloneWithIfNotExists(createTable: CreateTableNode, ifNotExists: boolean): CreateTableNode;
|
|
21
20
|
cloneWithConstraint(createTable: CreateTableNode, constraint: ConstraintNode): CreateTableNode;
|
|
22
21
|
}>;
|
|
@@ -22,10 +22,10 @@ exports.CreateTableNode = (0, object_utils_js_1.freeze)({
|
|
|
22
22
|
columns: (0, object_utils_js_1.freeze)([...createTable.columns, column]),
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
|
-
|
|
25
|
+
cloneWithIfNotExists(createTable, ifNotExists) {
|
|
26
26
|
return (0, object_utils_js_1.freeze)({
|
|
27
27
|
...createTable,
|
|
28
|
-
|
|
28
|
+
ifNotExists,
|
|
29
29
|
});
|
|
30
30
|
},
|
|
31
31
|
cloneWithConstraint(createTable, constraint) {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ColumnNode } from './column-node.js';
|
|
2
|
+
import { IdentifierNode } from './identifier-node.js';
|
|
3
|
+
import { OperationNode } from './operation-node.js';
|
|
4
|
+
import { RawNode } from './raw-node.js';
|
|
5
|
+
import { SelectQueryNode } from './select-query-node.js';
|
|
6
|
+
export declare type CreateViewNodeParams = Omit<Partial<CreateViewNode>, 'kind' | 'name'>;
|
|
7
|
+
export interface CreateViewNode extends OperationNode {
|
|
8
|
+
readonly kind: 'CreateViewNode';
|
|
9
|
+
readonly name: IdentifierNode;
|
|
10
|
+
readonly materialized?: boolean;
|
|
11
|
+
readonly orReplace?: boolean;
|
|
12
|
+
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
13
|
+
readonly as?: SelectQueryNode | RawNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export declare const CreateViewNode: Readonly<{
|
|
19
|
+
is(node: OperationNode): node is CreateViewNode;
|
|
20
|
+
create(name: string): CreateViewNode;
|
|
21
|
+
cloneWith(createView: CreateViewNode, params: CreateViewNodeParams): CreateViewNode;
|
|
22
|
+
}>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateViewNode = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
+
const identifier_node_js_1 = require("./identifier-node.js");
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
exports.CreateViewNode = (0, object_utils_js_1.freeze)({
|
|
10
|
+
is(node) {
|
|
11
|
+
return node.kind === 'CreateViewNode';
|
|
12
|
+
},
|
|
13
|
+
create(name) {
|
|
14
|
+
return (0, object_utils_js_1.freeze)({
|
|
15
|
+
kind: 'CreateViewNode',
|
|
16
|
+
name: identifier_node_js_1.IdentifierNode.create(name),
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
cloneWith(createView, params) {
|
|
20
|
+
return (0, object_utils_js_1.freeze)({
|
|
21
|
+
...createView,
|
|
22
|
+
...params,
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { RawNode } from './raw-node.js';
|
|
3
|
+
import { ValueNode } from './value-node.js';
|
|
4
|
+
export interface DefaultValueNode extends OperationNode {
|
|
5
|
+
readonly kind: 'DefaultValueNode';
|
|
6
|
+
readonly defaultValue: ValueNode | RawNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const DefaultValueNode: Readonly<{
|
|
12
|
+
is(node: OperationNode): node is DefaultValueNode;
|
|
13
|
+
create(defaultValue: ValueNode | RawNode): DefaultValueNode;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultValueNode = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.DefaultValueNode = (0, object_utils_js_1.freeze)({
|
|
9
|
+
is(node) {
|
|
10
|
+
return node.kind === 'DefaultValueNode';
|
|
11
|
+
},
|
|
12
|
+
create(defaultValue) {
|
|
13
|
+
return (0, object_utils_js_1.freeze)({
|
|
14
|
+
kind: 'DefaultValueNode',
|
|
15
|
+
defaultValue,
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -2,12 +2,11 @@ import { IdentifierNode } from './identifier-node.js';
|
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
3
|
import { TableNode } from './table-node.js';
|
|
4
4
|
export declare type DropIndexNodeProps = Omit<DropIndexNode, 'kind' | 'name'>;
|
|
5
|
-
export declare type DropIndexNodeModifier = 'IfExists';
|
|
6
5
|
export interface DropIndexNode extends OperationNode {
|
|
7
6
|
readonly kind: 'DropIndexNode';
|
|
8
7
|
readonly name: IdentifierNode;
|
|
9
8
|
readonly table?: TableNode;
|
|
10
|
-
readonly
|
|
9
|
+
readonly ifExists?: boolean;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
13
12
|
* @internal
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare type DropSchemaNodeModifier = 'IfExists';
|
|
4
3
|
export declare type DropSchemaNodeParams = Omit<Partial<DropSchemaNode>, 'kind' | 'schema'>;
|
|
5
4
|
export interface DropSchemaNode extends OperationNode {
|
|
6
5
|
readonly kind: 'DropSchemaNode';
|
|
7
6
|
readonly schema: IdentifierNode;
|
|
8
|
-
readonly
|
|
7
|
+
readonly ifExists?: boolean;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* @internal
|
|
@@ -13,5 +12,5 @@ export interface DropSchemaNode extends OperationNode {
|
|
|
13
12
|
export declare const DropSchemaNode: Readonly<{
|
|
14
13
|
is(node: OperationNode): node is DropSchemaNode;
|
|
15
14
|
create(schema: string, params?: DropSchemaNodeParams | undefined): DropSchemaNode;
|
|
16
|
-
|
|
15
|
+
cloneWith(dropSchema: DropSchemaNode, params: DropSchemaNodeParams): DropSchemaNode;
|
|
17
16
|
}>;
|
|
@@ -17,10 +17,10 @@ exports.DropSchemaNode = (0, object_utils_js_1.freeze)({
|
|
|
17
17
|
...params,
|
|
18
18
|
});
|
|
19
19
|
},
|
|
20
|
-
|
|
20
|
+
cloneWith(dropSchema, params) {
|
|
21
21
|
return (0, object_utils_js_1.freeze)({
|
|
22
|
-
...
|
|
23
|
-
|
|
22
|
+
...dropSchema,
|
|
23
|
+
...params,
|
|
24
24
|
});
|
|
25
25
|
},
|
|
26
26
|
});
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
3
|
export declare type DropTablexNodeParams = Omit<Partial<DropTableNode>, 'kind' | 'table'>;
|
|
4
|
-
export declare type DropTableNodeModifier = 'IfExists';
|
|
5
4
|
export interface DropTableNode extends OperationNode {
|
|
6
5
|
readonly kind: 'DropTableNode';
|
|
7
6
|
readonly table: TableNode;
|
|
8
|
-
readonly
|
|
7
|
+
readonly ifExists?: boolean;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* @internal
|
|
@@ -13,5 +12,5 @@ export interface DropTableNode extends OperationNode {
|
|
|
13
12
|
export declare const DropTableNode: Readonly<{
|
|
14
13
|
is(node: OperationNode): node is DropTableNode;
|
|
15
14
|
create(table: TableNode, params?: DropTablexNodeParams | undefined): DropTableNode;
|
|
16
|
-
|
|
15
|
+
cloneWith(dropIndex: DropTableNode, params: DropTablexNodeParams): DropTableNode;
|
|
17
16
|
}>;
|
|
@@ -16,10 +16,10 @@ exports.DropTableNode = (0, object_utils_js_1.freeze)({
|
|
|
16
16
|
...params,
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
cloneWith(dropIndex, params) {
|
|
20
20
|
return (0, object_utils_js_1.freeze)({
|
|
21
21
|
...dropIndex,
|
|
22
|
-
|
|
22
|
+
...params,
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IdentifierNode } from './identifier-node.js';
|
|
2
|
+
import { OperationNode } from './operation-node.js';
|
|
3
|
+
export declare type DropViewNodeParams = Omit<Partial<DropViewNode>, 'kind' | 'name'>;
|
|
4
|
+
export interface DropViewNode extends OperationNode {
|
|
5
|
+
readonly kind: 'DropViewNode';
|
|
6
|
+
readonly name: IdentifierNode;
|
|
7
|
+
readonly ifExists?: boolean;
|
|
8
|
+
readonly materialized?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const DropViewNode: Readonly<{
|
|
14
|
+
is(node: OperationNode): node is DropViewNode;
|
|
15
|
+
create(name: string): DropViewNode;
|
|
16
|
+
cloneWith(dropView: DropViewNode, params: DropViewNodeParams): DropViewNode;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DropViewNode = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
+
const identifier_node_js_1 = require("./identifier-node.js");
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
exports.DropViewNode = (0, object_utils_js_1.freeze)({
|
|
10
|
+
is(node) {
|
|
11
|
+
return node.kind === 'DropViewNode';
|
|
12
|
+
},
|
|
13
|
+
create(name) {
|
|
14
|
+
return (0, object_utils_js_1.freeze)({
|
|
15
|
+
kind: 'DropViewNode',
|
|
16
|
+
name: identifier_node_js_1.IdentifierNode.create(name),
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
cloneWith(dropView, params) {
|
|
20
|
+
return (0, object_utils_js_1.freeze)({
|
|
21
|
+
...dropView,
|
|
22
|
+
...params,
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { RawNode } from './raw-node.js';
|
|
3
|
+
export declare type GeneratedAlwaysAsNodeParams = Omit<GeneratedAlwaysAsNode, 'kind' | 'expression'>;
|
|
4
|
+
export interface GeneratedAlwaysAsNode extends OperationNode {
|
|
5
|
+
readonly kind: 'GeneratedAlwaysAsNode';
|
|
6
|
+
readonly expression: RawNode;
|
|
7
|
+
readonly stored?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const GeneratedAlwaysAsNode: Readonly<{
|
|
13
|
+
is(node: OperationNode): node is GeneratedAlwaysAsNode;
|
|
14
|
+
create(expression: string): GeneratedAlwaysAsNode;
|
|
15
|
+
cloneWith(node: GeneratedAlwaysAsNode, params: GeneratedAlwaysAsNodeParams): GeneratedAlwaysAsNode;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeneratedAlwaysAsNode = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
+
const raw_node_js_1 = require("./raw-node.js");
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
exports.GeneratedAlwaysAsNode = (0, object_utils_js_1.freeze)({
|
|
10
|
+
is(node) {
|
|
11
|
+
return node.kind === 'GeneratedAlwaysAsNode';
|
|
12
|
+
},
|
|
13
|
+
create(expression) {
|
|
14
|
+
return (0, object_utils_js_1.freeze)({
|
|
15
|
+
kind: 'GeneratedAlwaysAsNode',
|
|
16
|
+
expression: raw_node_js_1.RawNode.createWithSql(expression),
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
cloneWith(node, params) {
|
|
20
|
+
return (0, object_utils_js_1.freeze)({
|
|
21
|
+
...node,
|
|
22
|
+
...params,
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
});
|
|
@@ -58,6 +58,10 @@ import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
|
58
58
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
59
59
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
60
60
|
import { UnionNode } from './union-node.js';
|
|
61
|
+
import { CreateViewNode } from './create-view-node.js';
|
|
62
|
+
import { DropViewNode } from './drop-view-node.js';
|
|
63
|
+
import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
|
|
64
|
+
import { DefaultValueNode } from './default-value-node.js';
|
|
61
65
|
/**
|
|
62
66
|
* Transforms an operation node tree into another one.
|
|
63
67
|
*
|
|
@@ -145,6 +149,10 @@ export declare class OperationNodeTransformer {
|
|
|
145
149
|
protected transformModifyColumn(node: ModifyColumnNode): ModifyColumnNode;
|
|
146
150
|
protected transformAddConstraint(node: AddConstraintNode): AddConstraintNode;
|
|
147
151
|
protected transformDropConstraint(node: DropConstraintNode): DropConstraintNode;
|
|
152
|
+
protected transformCreateView(node: CreateViewNode): CreateViewNode;
|
|
153
|
+
protected transformDropView(node: DropViewNode): DropViewNode;
|
|
154
|
+
protected transformGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): GeneratedAlwaysAsNode;
|
|
155
|
+
protected transformDefaultValue(node: DefaultValueNode): DefaultValueNode;
|
|
148
156
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
149
157
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
150
158
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|
|
@@ -33,7 +33,7 @@ const object_utils_js_1 = require("../util/object-utils.js");
|
|
|
33
33
|
*/
|
|
34
34
|
class OperationNodeTransformer {
|
|
35
35
|
nodeStack = [];
|
|
36
|
-
#transformers = {
|
|
36
|
+
#transformers = (0, object_utils_js_1.freeze)({
|
|
37
37
|
AliasNode: this.transformAlias.bind(this),
|
|
38
38
|
ColumnNode: this.transformColumn.bind(this),
|
|
39
39
|
IdentifierNode: this.transformIdentifier.bind(this),
|
|
@@ -93,7 +93,11 @@ class OperationNodeTransformer {
|
|
|
93
93
|
DropConstraintNode: this.transformDropConstraint.bind(this),
|
|
94
94
|
ForeignKeyConstraintNode: this.transformForeignKeyConstraint.bind(this),
|
|
95
95
|
UnionNode: this.transformUnion.bind(this),
|
|
96
|
-
|
|
96
|
+
CreateViewNode: this.transformCreateView.bind(this),
|
|
97
|
+
DropViewNode: this.transformDropView.bind(this),
|
|
98
|
+
GeneratedAlwaysAsNode: this.transformGeneratedAlwaysAs.bind(this),
|
|
99
|
+
DefaultValueNode: this.transformDefaultValue.bind(this),
|
|
100
|
+
});
|
|
97
101
|
transformNode = (node) => {
|
|
98
102
|
if (!node) {
|
|
99
103
|
return undefined;
|
|
@@ -115,7 +119,7 @@ class OperationNodeTransformer {
|
|
|
115
119
|
from: this.transformNode(node.from),
|
|
116
120
|
selections: this.transformNodeList(node.selections),
|
|
117
121
|
distinctOnSelections: this.transformNodeList(node.distinctOnSelections),
|
|
118
|
-
|
|
122
|
+
distinct: node.distinct,
|
|
119
123
|
joins: this.transformNodeList(node.joins),
|
|
120
124
|
groupBy: this.transformNode(node.groupBy),
|
|
121
125
|
orderBy: this.transformNode(node.orderBy),
|
|
@@ -257,7 +261,7 @@ class OperationNodeTransformer {
|
|
|
257
261
|
table: this.transformNode(node.table),
|
|
258
262
|
columns: this.transformNodeList(node.columns),
|
|
259
263
|
constraints: this.transformNodeList(node.constraints),
|
|
260
|
-
|
|
264
|
+
ifNotExists: node.ifNotExists,
|
|
261
265
|
};
|
|
262
266
|
}
|
|
263
267
|
transformColumnDefinition(node) {
|
|
@@ -266,12 +270,13 @@ class OperationNodeTransformer {
|
|
|
266
270
|
column: this.transformNode(node.column),
|
|
267
271
|
dataType: this.transformNode(node.dataType),
|
|
268
272
|
references: this.transformNode(node.references),
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
+
primaryKey: node.primaryKey,
|
|
274
|
+
autoIncrement: node.autoIncrement,
|
|
275
|
+
unique: node.unique,
|
|
276
|
+
nullable: node.nullable,
|
|
273
277
|
defaultTo: this.transformNode(node.defaultTo),
|
|
274
278
|
check: this.transformNode(node.check),
|
|
279
|
+
generatedAlwaysAs: this.transformNode(node.generatedAlwaysAs),
|
|
275
280
|
};
|
|
276
281
|
}
|
|
277
282
|
transformAddColumn(node) {
|
|
@@ -284,7 +289,7 @@ class OperationNodeTransformer {
|
|
|
284
289
|
return {
|
|
285
290
|
kind: 'DropTableNode',
|
|
286
291
|
table: this.transformNode(node.table),
|
|
287
|
-
|
|
292
|
+
ifExists: node.ifExists,
|
|
288
293
|
};
|
|
289
294
|
}
|
|
290
295
|
transformOrderBy(node) {
|
|
@@ -378,7 +383,7 @@ class OperationNodeTransformer {
|
|
|
378
383
|
kind: 'DropIndexNode',
|
|
379
384
|
name: this.transformNode(node.name),
|
|
380
385
|
table: this.transformNode(node.table),
|
|
381
|
-
|
|
386
|
+
ifExists: node.ifExists,
|
|
382
387
|
};
|
|
383
388
|
}
|
|
384
389
|
transformPrimaryKeyConstraint(node) {
|
|
@@ -457,7 +462,7 @@ class OperationNodeTransformer {
|
|
|
457
462
|
return {
|
|
458
463
|
kind: 'DropSchemaNode',
|
|
459
464
|
schema: this.transformNode(node.schema),
|
|
460
|
-
|
|
465
|
+
ifExists: node.ifExists,
|
|
461
466
|
};
|
|
462
467
|
}
|
|
463
468
|
transformAlterTable(node) {
|
|
@@ -518,6 +523,37 @@ class OperationNodeTransformer {
|
|
|
518
523
|
constraintName: this.transformNode(node.constraintName),
|
|
519
524
|
};
|
|
520
525
|
}
|
|
526
|
+
transformCreateView(node) {
|
|
527
|
+
return {
|
|
528
|
+
kind: 'CreateViewNode',
|
|
529
|
+
name: this.transformNode(node.name),
|
|
530
|
+
orReplace: node.orReplace,
|
|
531
|
+
materialized: node.materialized,
|
|
532
|
+
columns: this.transformNodeList(node.columns),
|
|
533
|
+
as: this.transformNode(node.as),
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
transformDropView(node) {
|
|
537
|
+
return {
|
|
538
|
+
kind: 'DropViewNode',
|
|
539
|
+
name: this.transformNode(node.name),
|
|
540
|
+
ifExists: node.ifExists,
|
|
541
|
+
materialized: node.materialized,
|
|
542
|
+
};
|
|
543
|
+
}
|
|
544
|
+
transformGeneratedAlwaysAs(node) {
|
|
545
|
+
return {
|
|
546
|
+
kind: 'GeneratedAlwaysAsNode',
|
|
547
|
+
expression: this.transformNode(node.expression),
|
|
548
|
+
stored: node.stored,
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
transformDefaultValue(node) {
|
|
552
|
+
return {
|
|
553
|
+
kind: 'DefaultValueNode',
|
|
554
|
+
defaultValue: this.transformNode(node.defaultValue),
|
|
555
|
+
};
|
|
556
|
+
}
|
|
521
557
|
transformDataType(node) {
|
|
522
558
|
// An Object.freezed leaf node. No need to clone.
|
|
523
559
|
return node;
|
|
@@ -58,6 +58,10 @@ import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
|
58
58
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
59
59
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
60
60
|
import { UnionNode } from './union-node.js';
|
|
61
|
+
import { CreateViewNode } from './create-view-node.js';
|
|
62
|
+
import { DropViewNode } from './drop-view-node.js';
|
|
63
|
+
import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
|
|
64
|
+
import { DefaultValueNode } from './default-value-node.js';
|
|
61
65
|
export declare abstract class OperationNodeVisitor {
|
|
62
66
|
#private;
|
|
63
67
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -121,4 +125,8 @@ export declare abstract class OperationNodeVisitor {
|
|
|
121
125
|
protected abstract visitValue(_: ValueNode): void;
|
|
122
126
|
protected abstract visitPrimitiveValueList(_: PrimitiveValueListNode): void;
|
|
123
127
|
protected abstract visitOperator(node: OperatorNode): void;
|
|
128
|
+
protected abstract visitCreateView(node: CreateViewNode): void;
|
|
129
|
+
protected abstract visitDropView(node: DropViewNode): void;
|
|
130
|
+
protected abstract visitGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): void;
|
|
131
|
+
protected abstract visitDefaultValue(node: DefaultValueNode): void;
|
|
124
132
|
}
|