kysely 0.9.6 → 0.10.0
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/index.d.ts +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/operation-node/column-definition-node.d.ts +4 -4
- 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/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/operation-node-transformer.d.ts +4 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +29 -9
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +2 -0
- 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/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 +4 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +42 -10
- package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
- package/dist/cjs/schema/alter-table-builder.d.ts +2 -2
- package/dist/cjs/schema/alter-table-builder.js +4 -4
- package/dist/cjs/schema/column-definition-builder.d.ts +2 -2
- package/dist/cjs/schema/column-definition-builder.js +5 -5
- package/dist/cjs/schema/create-schema-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +1 -1
- package/dist/cjs/schema/create-table-builder.js +2 -2
- 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/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/operation-node/column-definition-node.d.ts +4 -4
- 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/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/operation-node-transformer.d.ts +4 -0
- package/dist/esm/operation-node/operation-node-transformer.js +29 -9
- package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -0
- package/dist/esm/operation-node/operation-node-visitor.js +2 -0
- 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/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 +4 -0
- package/dist/esm/query-compiler/default-query-compiler.js +42 -10
- package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
- package/dist/esm/schema/alter-table-builder.d.ts +2 -2
- package/dist/esm/schema/alter-table-builder.js +4 -4
- package/dist/esm/schema/column-definition-builder.d.ts +2 -2
- package/dist/esm/schema/column-definition-builder.js +5 -5
- package/dist/esm/schema/create-schema-builder.js +1 -1
- package/dist/esm/schema/create-table-builder.d.ts +1 -1
- package/dist/esm/schema/create-table-builder.js +2 -2
- 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/package.json +4 -1
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')
|
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);
|
|
@@ -12,10 +12,10 @@ export interface ColumnDefinitionNode extends OperationNode {
|
|
|
12
12
|
readonly column: ColumnNode;
|
|
13
13
|
readonly dataType: ColumnDataTypeNode;
|
|
14
14
|
readonly references?: ReferencesNode;
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
15
|
+
readonly primaryKey: boolean;
|
|
16
|
+
readonly autoIncrement: boolean;
|
|
17
|
+
readonly unique: boolean;
|
|
18
|
+
readonly nullable: boolean;
|
|
19
19
|
readonly defaultTo?: ValueNode | RawNode;
|
|
20
20
|
readonly check?: CheckConstraintNode;
|
|
21
21
|
}
|
|
@@ -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
|
+
});
|
|
@@ -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
|
+
});
|
|
@@ -58,6 +58,8 @@ 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';
|
|
61
63
|
/**
|
|
62
64
|
* Transforms an operation node tree into another one.
|
|
63
65
|
*
|
|
@@ -145,6 +147,8 @@ export declare class OperationNodeTransformer {
|
|
|
145
147
|
protected transformModifyColumn(node: ModifyColumnNode): ModifyColumnNode;
|
|
146
148
|
protected transformAddConstraint(node: AddConstraintNode): AddConstraintNode;
|
|
147
149
|
protected transformDropConstraint(node: DropConstraintNode): DropConstraintNode;
|
|
150
|
+
protected transformCreateView(node: CreateViewNode): CreateViewNode;
|
|
151
|
+
protected transformDropView(node: DropViewNode): DropViewNode;
|
|
148
152
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
149
153
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
150
154
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|
|
@@ -93,6 +93,8 @@ class OperationNodeTransformer {
|
|
|
93
93
|
DropConstraintNode: this.transformDropConstraint.bind(this),
|
|
94
94
|
ForeignKeyConstraintNode: this.transformForeignKeyConstraint.bind(this),
|
|
95
95
|
UnionNode: this.transformUnion.bind(this),
|
|
96
|
+
CreateViewNode: this.transformCreateView.bind(this),
|
|
97
|
+
DropViewNode: this.transformDropView.bind(this),
|
|
96
98
|
};
|
|
97
99
|
transformNode = (node) => {
|
|
98
100
|
if (!node) {
|
|
@@ -115,7 +117,7 @@ class OperationNodeTransformer {
|
|
|
115
117
|
from: this.transformNode(node.from),
|
|
116
118
|
selections: this.transformNodeList(node.selections),
|
|
117
119
|
distinctOnSelections: this.transformNodeList(node.distinctOnSelections),
|
|
118
|
-
|
|
120
|
+
distinct: node.distinct,
|
|
119
121
|
joins: this.transformNodeList(node.joins),
|
|
120
122
|
groupBy: this.transformNode(node.groupBy),
|
|
121
123
|
orderBy: this.transformNode(node.orderBy),
|
|
@@ -257,7 +259,7 @@ class OperationNodeTransformer {
|
|
|
257
259
|
table: this.transformNode(node.table),
|
|
258
260
|
columns: this.transformNodeList(node.columns),
|
|
259
261
|
constraints: this.transformNodeList(node.constraints),
|
|
260
|
-
|
|
262
|
+
ifNotExists: node.ifNotExists,
|
|
261
263
|
};
|
|
262
264
|
}
|
|
263
265
|
transformColumnDefinition(node) {
|
|
@@ -266,10 +268,10 @@ class OperationNodeTransformer {
|
|
|
266
268
|
column: this.transformNode(node.column),
|
|
267
269
|
dataType: this.transformNode(node.dataType),
|
|
268
270
|
references: this.transformNode(node.references),
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
271
|
+
primaryKey: node.primaryKey,
|
|
272
|
+
autoIncrement: node.autoIncrement,
|
|
273
|
+
unique: node.unique,
|
|
274
|
+
nullable: node.nullable,
|
|
273
275
|
defaultTo: this.transformNode(node.defaultTo),
|
|
274
276
|
check: this.transformNode(node.check),
|
|
275
277
|
};
|
|
@@ -284,7 +286,7 @@ class OperationNodeTransformer {
|
|
|
284
286
|
return {
|
|
285
287
|
kind: 'DropTableNode',
|
|
286
288
|
table: this.transformNode(node.table),
|
|
287
|
-
|
|
289
|
+
ifExists: node.ifExists,
|
|
288
290
|
};
|
|
289
291
|
}
|
|
290
292
|
transformOrderBy(node) {
|
|
@@ -378,7 +380,7 @@ class OperationNodeTransformer {
|
|
|
378
380
|
kind: 'DropIndexNode',
|
|
379
381
|
name: this.transformNode(node.name),
|
|
380
382
|
table: this.transformNode(node.table),
|
|
381
|
-
|
|
383
|
+
ifExists: node.ifExists,
|
|
382
384
|
};
|
|
383
385
|
}
|
|
384
386
|
transformPrimaryKeyConstraint(node) {
|
|
@@ -457,7 +459,7 @@ class OperationNodeTransformer {
|
|
|
457
459
|
return {
|
|
458
460
|
kind: 'DropSchemaNode',
|
|
459
461
|
schema: this.transformNode(node.schema),
|
|
460
|
-
|
|
462
|
+
ifExists: node.ifExists,
|
|
461
463
|
};
|
|
462
464
|
}
|
|
463
465
|
transformAlterTable(node) {
|
|
@@ -518,6 +520,24 @@ class OperationNodeTransformer {
|
|
|
518
520
|
constraintName: this.transformNode(node.constraintName),
|
|
519
521
|
};
|
|
520
522
|
}
|
|
523
|
+
transformCreateView(node) {
|
|
524
|
+
return {
|
|
525
|
+
kind: 'CreateViewNode',
|
|
526
|
+
name: this.transformNode(node.name),
|
|
527
|
+
orReplace: node.orReplace,
|
|
528
|
+
materialized: node.materialized,
|
|
529
|
+
columns: this.transformNodeList(node.columns),
|
|
530
|
+
as: this.transformNode(node.as),
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
transformDropView(node) {
|
|
534
|
+
return {
|
|
535
|
+
kind: 'DropViewNode',
|
|
536
|
+
name: this.transformNode(node.name),
|
|
537
|
+
ifExists: node.ifExists,
|
|
538
|
+
materialized: node.materialized,
|
|
539
|
+
};
|
|
540
|
+
}
|
|
521
541
|
transformDataType(node) {
|
|
522
542
|
// An Object.freezed leaf node. No need to clone.
|
|
523
543
|
return node;
|
|
@@ -58,6 +58,8 @@ 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';
|
|
61
63
|
export declare abstract class OperationNodeVisitor {
|
|
62
64
|
#private;
|
|
63
65
|
protected readonly nodeStack: OperationNode[];
|
|
@@ -121,4 +123,6 @@ export declare abstract class OperationNodeVisitor {
|
|
|
121
123
|
protected abstract visitValue(_: ValueNode): void;
|
|
122
124
|
protected abstract visitPrimitiveValueList(_: PrimitiveValueListNode): void;
|
|
123
125
|
protected abstract visitOperator(node: OperatorNode): void;
|
|
126
|
+
protected abstract visitCreateView(node: CreateViewNode): void;
|
|
127
|
+
protected abstract visitDropView(node: DropViewNode): void;
|
|
124
128
|
}
|
|
@@ -63,6 +63,8 @@ class OperationNodeVisitor {
|
|
|
63
63
|
DropConstraintNode: this.visitDropConstraint.bind(this),
|
|
64
64
|
ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
|
|
65
65
|
UnionNode: this.visitUnion.bind(this),
|
|
66
|
+
CreateViewNode: this.visitCreateView.bind(this),
|
|
67
|
+
DropViewNode: this.visitDropView.bind(this),
|
|
66
68
|
};
|
|
67
69
|
visitNode = (node) => {
|
|
68
70
|
this.nodeStack.push(node);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'UnionNode';
|
|
1
|
+
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'UnionNode' | 'CreateViewNode' | 'DropViewNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArrayItemType } from '../util/type-utils.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "ilike", "not ilike", "@>", "<@", "?", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "exists", "not exists", "&&"];
|
|
3
|
+
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "ilike", "not ilike", "@>", "<@", "?", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "exists", "not exists", "&&", "||", "@@", "@@@", "!!", "<->"];
|
|
4
4
|
export declare type Operator = ArrayItemType<typeof OPERATORS>;
|
|
5
5
|
export interface OperatorNode extends OperationNode {
|
|
6
6
|
readonly kind: 'OperatorNode';
|
|
@@ -19,7 +19,7 @@ export interface SelectQueryNode extends OperationNode {
|
|
|
19
19
|
readonly from: FromNode;
|
|
20
20
|
readonly selections?: ReadonlyArray<SelectionNode>;
|
|
21
21
|
readonly distinctOnSelections?: ReadonlyArray<SelectionNode>;
|
|
22
|
-
readonly
|
|
22
|
+
readonly distinct?: boolean;
|
|
23
23
|
readonly joins?: ReadonlyArray<JoinNode>;
|
|
24
24
|
readonly groupBy?: GroupByNode;
|
|
25
25
|
readonly orderBy?: OrderByNode;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { QueryResult } from '../../driver/database-connection.js';
|
|
2
|
+
import { UnknownRow } from '../../index.js';
|
|
3
|
+
import { RootOperationNode } from '../../query-compiler/query-compiler.js';
|
|
4
|
+
import { KyselyPlugin, PluginTransformQueryArgs, PluginTransformResultArgs } from '../kysely-plugin.js';
|
|
5
|
+
/**
|
|
6
|
+
* Transforms all ValueNodes to immediate.
|
|
7
|
+
*
|
|
8
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
9
|
+
* This is an internal helper.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare class ImmediateValuePlugin implements KyselyPlugin {
|
|
14
|
+
#private;
|
|
15
|
+
transformQuery(args: PluginTransformQueryArgs): RootOperationNode;
|
|
16
|
+
transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImmediateValuePlugin = void 0;
|
|
4
|
+
const immediate_value_transformer_js_1 = require("./immediate-value-transformer.js");
|
|
5
|
+
/**
|
|
6
|
+
* Transforms all ValueNodes to immediate.
|
|
7
|
+
*
|
|
8
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
9
|
+
* This is an internal helper.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
class ImmediateValuePlugin {
|
|
14
|
+
#transformer = new immediate_value_transformer_js_1.ImmediateValueTransformer();
|
|
15
|
+
transformQuery(args) {
|
|
16
|
+
return this.#transformer.transformNode(args.node);
|
|
17
|
+
}
|
|
18
|
+
async transformResult(args) {
|
|
19
|
+
return args.result;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ImmediateValuePlugin = ImmediateValuePlugin;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
2
|
+
import { ValueNode } from '../../operation-node/value-node.js';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms all ValueNodes to immediate.
|
|
5
|
+
*
|
|
6
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
7
|
+
* This is an internal helper.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare class ImmediateValueTransformer extends OperationNodeTransformer {
|
|
12
|
+
transformValue(node: ValueNode): ValueNode;
|
|
13
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImmediateValueTransformer = void 0;
|
|
4
|
+
const operation_node_transformer_js_1 = require("../../operation-node/operation-node-transformer.js");
|
|
5
|
+
/**
|
|
6
|
+
* Transforms all ValueNodes to immediate.
|
|
7
|
+
*
|
|
8
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
9
|
+
* This is an internal helper.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
class ImmediateValueTransformer extends operation_node_transformer_js_1.OperationNodeTransformer {
|
|
14
|
+
transformValue(node) {
|
|
15
|
+
return {
|
|
16
|
+
...super.transformValue(node),
|
|
17
|
+
immediate: true,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ImmediateValueTransformer = ImmediateValueTransformer;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { AlterTableNode } from '../../operation-node/alter-table-node.js';
|
|
2
2
|
import { CreateIndexNode } from '../../operation-node/create-index-node.js';
|
|
3
3
|
import { CreateTableNode } from '../../operation-node/create-table-node.js';
|
|
4
|
+
import { CreateViewNode } from '../../operation-node/create-view-node.js';
|
|
4
5
|
import { DeleteQueryNode } from '../../operation-node/delete-query-node.js';
|
|
5
6
|
import { DropIndexNode } from '../../operation-node/drop-index-node.js';
|
|
6
7
|
import { DropTableNode } from '../../operation-node/drop-table-node.js';
|
|
8
|
+
import { DropViewNode } from '../../operation-node/drop-view-node.js';
|
|
7
9
|
import { InsertQueryNode } from '../../operation-node/insert-query-node.js';
|
|
8
10
|
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
9
11
|
import { SelectQueryNode } from '../../operation-node/select-query-node.js';
|
|
@@ -20,6 +22,8 @@ export declare class WithSchemaTransformer extends OperationNodeTransformer {
|
|
|
20
22
|
protected transformDropTable(node: DropTableNode): DropTableNode;
|
|
21
23
|
protected transformCreateIndex(node: CreateIndexNode): CreateIndexNode;
|
|
22
24
|
protected transformDropIndex(node: DropIndexNode): DropIndexNode;
|
|
25
|
+
protected transformCreateView(node: CreateViewNode): CreateViewNode;
|
|
26
|
+
protected transformDropView(node: DropViewNode): DropViewNode;
|
|
23
27
|
protected transformAlterTable(node: AlterTableNode): AlterTableNode;
|
|
24
28
|
protected transformTable(node: TableNode): TableNode;
|
|
25
29
|
}
|