kysely 0.16.9 → 0.17.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/LICENSE +21 -0
- package/README.md +2 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +3 -4
- package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -1
- package/dist/cjs/dialect/postgres/postgres-adapter.js +3 -2
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +2 -1
- package/dist/cjs/driver/connection-provider.d.ts +1 -1
- package/dist/cjs/driver/default-connection-provider.d.ts +1 -1
- package/dist/cjs/driver/default-connection-provider.js +1 -1
- package/dist/cjs/driver/single-connection-provider.d.ts +1 -1
- package/dist/cjs/driver/single-connection-provider.js +1 -1
- package/dist/cjs/index-nodeless.d.ts +2 -0
- package/dist/cjs/index-nodeless.js +2 -0
- package/dist/cjs/kysely.d.ts +3 -6
- package/dist/cjs/kysely.js +30 -41
- package/dist/cjs/migration/migrator.js +4 -4
- package/dist/cjs/operation-node/delete-query-node.d.ts +7 -0
- package/dist/cjs/operation-node/delete-query-node.js +15 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +1 -1
- package/dist/cjs/operation-node/raw-node.d.ts +4 -2
- package/dist/cjs/operation-node/raw-node.js +8 -2
- package/dist/cjs/parser/complex-expression-parser.d.ts +5 -5
- package/dist/cjs/parser/complex-expression-parser.js +5 -4
- package/dist/cjs/parser/filter-parser.d.ts +9 -9
- package/dist/cjs/parser/filter-parser.js +31 -30
- package/dist/cjs/parser/group-by-parser.d.ts +1 -2
- package/dist/cjs/parser/group-by-parser.js +2 -2
- package/dist/cjs/parser/insert-values-parser.d.ts +1 -2
- package/dist/cjs/parser/insert-values-parser.js +6 -6
- package/dist/cjs/parser/join-parser.d.ts +1 -2
- package/dist/cjs/parser/join-parser.js +8 -7
- package/dist/cjs/parser/order-by-parser.d.ts +1 -2
- package/dist/cjs/parser/order-by-parser.js +4 -4
- package/dist/cjs/parser/parse-utils.d.ts +10 -0
- package/dist/cjs/parser/parse-utils.js +38 -0
- package/dist/cjs/parser/reference-parser.d.ts +2 -3
- package/dist/cjs/parser/reference-parser.js +5 -5
- package/dist/cjs/parser/select-parser.d.ts +1 -2
- package/dist/cjs/parser/select-parser.js +5 -5
- package/dist/cjs/parser/table-parser.d.ts +2 -3
- package/dist/cjs/parser/table-parser.js +5 -5
- package/dist/cjs/parser/update-set-parser.d.ts +1 -2
- package/dist/cjs/parser/update-set-parser.js +2 -2
- package/dist/cjs/parser/value-parser.d.ts +3 -4
- package/dist/cjs/parser/value-parser.js +7 -7
- package/dist/cjs/parser/with-parser.d.ts +1 -2
- package/dist/cjs/parser/with-parser.js +3 -2
- package/dist/cjs/query-builder/delete-query-builder.d.ts +77 -20
- package/dist/cjs/query-builder/delete-query-builder.js +81 -14
- package/dist/cjs/query-builder/expression-builder.d.ts +4 -13
- package/dist/cjs/query-builder/expression-builder.js +12 -21
- package/dist/cjs/query-builder/function-builder.d.ts +2 -6
- package/dist/cjs/query-builder/function-builder.js +5 -8
- package/dist/cjs/query-builder/insert-query-builder.d.ts +11 -9
- package/dist/cjs/query-builder/insert-query-builder.js +8 -7
- package/dist/cjs/query-builder/join-builder.d.ts +0 -2
- package/dist/cjs/query-builder/join-builder.js +8 -8
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +24 -20
- package/dist/cjs/query-builder/on-conflict-builder.js +17 -17
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
- package/dist/cjs/query-builder/select-query-builder.d.ts +43 -32
- package/dist/cjs/query-builder/select-query-builder.js +28 -26
- package/dist/cjs/query-builder/update-query-builder.d.ts +29 -25
- package/dist/cjs/query-builder/update-query-builder.js +22 -20
- package/dist/cjs/query-builder/where-interface.d.ts +20 -16
- package/dist/cjs/query-compiler/default-query-compiler.js +16 -7
- package/dist/cjs/query-creator.d.ts +24 -138
- package/dist/cjs/query-creator.js +19 -145
- package/dist/cjs/query-executor/default-query-executor.d.ts +14 -3
- package/dist/cjs/query-executor/default-query-executor.js +15 -17
- package/dist/cjs/query-executor/noop-query-executor.d.ts +13 -2
- package/dist/cjs/query-executor/noop-query-executor.js +9 -2
- package/dist/cjs/query-executor/query-executor-provider.d.ts +8 -0
- package/dist/cjs/query-executor/query-executor-provider.js +2 -0
- package/dist/cjs/query-executor/query-executor.d.ts +14 -6
- package/dist/cjs/query-executor/query-executor.js +4 -2
- package/dist/cjs/raw-builder/raw-builder.d.ts +42 -11
- package/dist/cjs/raw-builder/raw-builder.js +55 -56
- package/dist/cjs/raw-builder/sql.d.ts +323 -0
- package/dist/cjs/raw-builder/sql.js +153 -0
- package/dist/cjs/schema/alter-table-builder.d.ts +20 -8
- package/dist/cjs/schema/alter-table-builder.js +3 -3
- package/dist/cjs/schema/column-definition-builder.d.ts +20 -8
- package/dist/cjs/schema/create-index-builder.d.ts +3 -1
- package/dist/cjs/schema/create-index-builder.js +3 -1
- package/dist/cjs/schema/create-table-builder.d.ts +6 -2
- package/dist/cjs/schema/create-table-builder.js +8 -4
- package/dist/cjs/schema/create-view-builder.d.ts +3 -3
- package/dist/cjs/schema/create-view-builder.js +3 -3
- package/dist/cjs/util/query-id.js +10 -4
- package/dist/cjs/util/random-string.js +65 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +3 -4
- package/dist/esm/dialect/mysql/mysql-introspector.js +2 -1
- package/dist/esm/dialect/postgres/postgres-adapter.js +3 -2
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +2 -1
- package/dist/esm/driver/connection-provider.d.ts +1 -1
- package/dist/esm/driver/default-connection-provider.d.ts +1 -1
- package/dist/esm/driver/default-connection-provider.js +1 -1
- package/dist/esm/driver/single-connection-provider.d.ts +1 -1
- package/dist/esm/driver/single-connection-provider.js +1 -1
- package/dist/esm/index-nodeless.d.ts +2 -0
- package/dist/esm/index-nodeless.js +2 -0
- package/dist/esm/kysely.d.ts +3 -6
- package/dist/esm/kysely.js +30 -41
- package/dist/esm/migration/migrator.js +4 -4
- package/dist/esm/operation-node/delete-query-node.d.ts +7 -0
- package/dist/esm/operation-node/delete-query-node.js +15 -0
- package/dist/esm/operation-node/operation-node-transformer.js +1 -1
- package/dist/esm/operation-node/raw-node.d.ts +4 -2
- package/dist/esm/operation-node/raw-node.js +8 -2
- package/dist/esm/parser/complex-expression-parser.d.ts +5 -5
- package/dist/esm/parser/complex-expression-parser.js +5 -4
- package/dist/esm/parser/filter-parser.d.ts +9 -9
- package/dist/esm/parser/filter-parser.js +31 -30
- package/dist/esm/parser/group-by-parser.d.ts +1 -2
- package/dist/esm/parser/group-by-parser.js +2 -2
- package/dist/esm/parser/insert-values-parser.d.ts +1 -2
- package/dist/esm/parser/insert-values-parser.js +6 -6
- package/dist/esm/parser/join-parser.d.ts +1 -2
- package/dist/esm/parser/join-parser.js +8 -7
- package/dist/esm/parser/order-by-parser.d.ts +1 -2
- package/dist/esm/parser/order-by-parser.js +4 -4
- package/dist/esm/parser/parse-utils.d.ts +10 -0
- package/dist/esm/parser/parse-utils.js +32 -0
- package/dist/esm/parser/reference-parser.d.ts +2 -3
- package/dist/esm/parser/reference-parser.js +5 -5
- package/dist/esm/parser/select-parser.d.ts +1 -2
- package/dist/esm/parser/select-parser.js +5 -5
- package/dist/esm/parser/table-parser.d.ts +2 -3
- package/dist/esm/parser/table-parser.js +5 -5
- package/dist/esm/parser/update-set-parser.d.ts +1 -2
- package/dist/esm/parser/update-set-parser.js +2 -2
- package/dist/esm/parser/value-parser.d.ts +3 -4
- package/dist/esm/parser/value-parser.js +7 -7
- package/dist/esm/parser/with-parser.d.ts +1 -2
- package/dist/esm/parser/with-parser.js +3 -2
- package/dist/esm/query-builder/delete-query-builder.d.ts +77 -20
- package/dist/esm/query-builder/delete-query-builder.js +81 -14
- package/dist/esm/query-builder/expression-builder.d.ts +4 -13
- package/dist/esm/query-builder/expression-builder.js +12 -21
- package/dist/esm/query-builder/function-builder.d.ts +2 -6
- package/dist/esm/query-builder/function-builder.js +5 -8
- package/dist/esm/query-builder/insert-query-builder.d.ts +11 -9
- package/dist/esm/query-builder/insert-query-builder.js +8 -7
- package/dist/esm/query-builder/join-builder.d.ts +0 -2
- package/dist/esm/query-builder/join-builder.js +8 -8
- package/dist/esm/query-builder/on-conflict-builder.d.ts +24 -20
- package/dist/esm/query-builder/on-conflict-builder.js +17 -17
- package/dist/esm/query-builder/returning-interface.d.ts +2 -2
- package/dist/esm/query-builder/select-query-builder.d.ts +43 -32
- package/dist/esm/query-builder/select-query-builder.js +28 -26
- package/dist/esm/query-builder/update-query-builder.d.ts +29 -25
- package/dist/esm/query-builder/update-query-builder.js +22 -20
- package/dist/esm/query-builder/where-interface.d.ts +20 -16
- package/dist/esm/query-compiler/default-query-compiler.js +16 -7
- package/dist/esm/query-creator.d.ts +24 -138
- package/dist/esm/query-creator.js +19 -145
- package/dist/esm/query-executor/default-query-executor.d.ts +14 -3
- package/dist/esm/query-executor/default-query-executor.js +15 -17
- package/dist/esm/query-executor/noop-query-executor.d.ts +13 -2
- package/dist/esm/query-executor/noop-query-executor.js +8 -1
- package/dist/esm/query-executor/query-executor-provider.d.ts +8 -0
- package/dist/esm/query-executor/query-executor-provider.js +2 -0
- package/dist/esm/query-executor/query-executor.d.ts +14 -6
- package/dist/esm/query-executor/query-executor.js +4 -2
- package/dist/esm/raw-builder/raw-builder.d.ts +42 -11
- package/dist/esm/raw-builder/raw-builder.js +56 -57
- package/dist/esm/raw-builder/sql.d.ts +323 -0
- package/dist/esm/raw-builder/sql.js +151 -0
- package/dist/esm/schema/alter-table-builder.d.ts +20 -8
- package/dist/esm/schema/alter-table-builder.js +3 -3
- package/dist/esm/schema/column-definition-builder.d.ts +20 -8
- package/dist/esm/schema/create-index-builder.d.ts +3 -1
- package/dist/esm/schema/create-index-builder.js +3 -1
- package/dist/esm/schema/create-table-builder.d.ts +6 -2
- package/dist/esm/schema/create-table-builder.js +8 -4
- package/dist/esm/schema/create-view-builder.d.ts +3 -3
- package/dist/esm/schema/create-view-builder.js +3 -3
- package/dist/esm/util/query-id.js +10 -4
- package/dist/esm/util/random-string.js +65 -2
- package/package.json +13 -13
- package/dist/cjs/parser/parse-context.d.ts +0 -55
- package/dist/cjs/parser/parse-context.js +0 -50
- package/dist/cjs/util/private-symbols.d.ts +0 -5
- package/dist/cjs/util/private-symbols.js +0 -8
- package/dist/esm/parser/parse-context.d.ts +0 -55
- package/dist/esm/parser/parse-context.js +0 -47
- package/dist/esm/util/private-symbols.d.ts +0 -5
- package/dist/esm/util/private-symbols.js +0 -6
|
@@ -142,15 +142,17 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
|
|
|
142
142
|
* .execute()
|
|
143
143
|
* ```
|
|
144
144
|
*
|
|
145
|
-
* Raw expressions are also supported:
|
|
145
|
+
* Raw {@link sql} expressions are also supported:
|
|
146
146
|
*
|
|
147
147
|
* ```ts
|
|
148
|
+
* import { sql } from 'kysely'
|
|
149
|
+
*
|
|
148
150
|
* db.schema
|
|
149
151
|
* .createTable('pet')
|
|
150
152
|
* .addColumn(
|
|
151
153
|
* 'number_of_legs',
|
|
152
154
|
* 'integer',
|
|
153
|
-
* (col) => col.defaultTo(
|
|
155
|
+
* (col) => col.defaultTo(sql`any SQL here`)
|
|
154
156
|
* )
|
|
155
157
|
* .execute()
|
|
156
158
|
* ```
|
|
@@ -162,10 +164,12 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
|
|
|
162
164
|
* ### Examples
|
|
163
165
|
*
|
|
164
166
|
* ```ts
|
|
167
|
+
* import { sql } from 'kysely'
|
|
168
|
+
*
|
|
165
169
|
* db.schema
|
|
166
170
|
* .createTable('pet')
|
|
167
171
|
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
168
|
-
* col.check(
|
|
172
|
+
* col.check(sql`number_of_legs < 5`)
|
|
169
173
|
* )
|
|
170
174
|
* .execute()
|
|
171
175
|
* ```
|
|
@@ -177,10 +181,12 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
|
|
|
177
181
|
* ### Examples
|
|
178
182
|
*
|
|
179
183
|
* ```ts
|
|
184
|
+
* import { sql } from 'kysely'
|
|
185
|
+
*
|
|
180
186
|
* db.schema
|
|
181
187
|
* .createTable('person')
|
|
182
188
|
* .addColumn('full_name', 'varchar(255)',
|
|
183
|
-
* (col) => col.generatedAlwaysAs(
|
|
189
|
+
* (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
184
190
|
* )
|
|
185
191
|
* .execute()
|
|
186
192
|
* ```
|
|
@@ -300,15 +306,17 @@ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBu
|
|
|
300
306
|
* .execute()
|
|
301
307
|
* ```
|
|
302
308
|
*
|
|
303
|
-
* Raw expressions are also supported:
|
|
309
|
+
* Raw {@link sql} expressions are also supported:
|
|
304
310
|
*
|
|
305
311
|
* ```ts
|
|
312
|
+
* import { sql } from 'kysely'
|
|
313
|
+
*
|
|
306
314
|
* db.schema
|
|
307
315
|
* .createTable('pet')
|
|
308
316
|
* .addColumn(
|
|
309
317
|
* 'number_of_legs',
|
|
310
318
|
* 'integer',
|
|
311
|
-
* (col) => col.defaultTo(
|
|
319
|
+
* (col) => col.defaultTo(sql`any SQL here`)
|
|
312
320
|
* )
|
|
313
321
|
* .execute()
|
|
314
322
|
* ```
|
|
@@ -320,10 +328,12 @@ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBu
|
|
|
320
328
|
* ### Examples
|
|
321
329
|
*
|
|
322
330
|
* ```ts
|
|
331
|
+
* import { sql } from 'kysely'
|
|
332
|
+
*
|
|
323
333
|
* db.schema
|
|
324
334
|
* .createTable('pet')
|
|
325
335
|
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
326
|
-
* col.check(
|
|
336
|
+
* col.check(sql`number_of_legs < 5`)
|
|
327
337
|
* )
|
|
328
338
|
* .execute()
|
|
329
339
|
* ```
|
|
@@ -335,10 +345,12 @@ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBu
|
|
|
335
345
|
* ### Examples
|
|
336
346
|
*
|
|
337
347
|
* ```ts
|
|
348
|
+
* import { sql } from 'kysely'
|
|
349
|
+
*
|
|
338
350
|
* db.schema
|
|
339
351
|
* .createTable('person')
|
|
340
352
|
* .addColumn('full_name', 'varchar(255)',
|
|
341
|
-
* (col) => col.generatedAlwaysAs(
|
|
353
|
+
* (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
342
354
|
* )
|
|
343
355
|
* .execute()
|
|
344
356
|
* ```
|
|
@@ -9,7 +9,6 @@ const data_type_node_js_1 = require("../operation-node/data-type-node.js");
|
|
|
9
9
|
const drop_column_node_js_1 = require("../operation-node/drop-column-node.js");
|
|
10
10
|
const identifier_node_js_1 = require("../operation-node/identifier-node.js");
|
|
11
11
|
const rename_column_node_js_1 = require("../operation-node/rename-column-node.js");
|
|
12
|
-
const table_node_js_1 = require("../operation-node/table-node.js");
|
|
13
12
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
14
13
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
15
14
|
const column_definition_builder_js_1 = require("./column-definition-builder.js");
|
|
@@ -22,6 +21,7 @@ const check_constraint_node_js_1 = require("../operation-node/check-constraint-n
|
|
|
22
21
|
const foreign_key_constraint_node_js_1 = require("../operation-node/foreign-key-constraint-node.js");
|
|
23
22
|
const column_node_js_1 = require("../operation-node/column-node.js");
|
|
24
23
|
const default_value_parser_js_1 = require("../parser/default-value-parser.js");
|
|
24
|
+
const table_parser_js_1 = require("../parser/table-parser.js");
|
|
25
25
|
/**
|
|
26
26
|
* This builder can be used to create a `alter table` query.
|
|
27
27
|
*/
|
|
@@ -34,7 +34,7 @@ class AlterTableBuilder {
|
|
|
34
34
|
return new AlterTableExecutor({
|
|
35
35
|
...this.#props,
|
|
36
36
|
alterTableNode: alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
|
|
37
|
-
renameTo:
|
|
37
|
+
renameTo: (0, table_parser_js_1.parseTable)(newTableName),
|
|
38
38
|
}),
|
|
39
39
|
});
|
|
40
40
|
}
|
|
@@ -104,7 +104,7 @@ class AlterTableBuilder {
|
|
|
104
104
|
addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns) {
|
|
105
105
|
return new AlterTableAddForeignKeyConstraintBuilder({
|
|
106
106
|
...this.#props,
|
|
107
|
-
constraintBuilder: new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create),
|
|
107
|
+
constraintBuilder: new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create), (0, table_parser_js_1.parseTable)(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName)),
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -83,15 +83,17 @@ export interface ColumnDefinitionBuilderInterface {
|
|
|
83
83
|
* .execute()
|
|
84
84
|
* ```
|
|
85
85
|
*
|
|
86
|
-
* Raw expressions are also supported:
|
|
86
|
+
* Raw {@link sql} expressions are also supported:
|
|
87
87
|
*
|
|
88
88
|
* ```ts
|
|
89
|
+
* import { sql } from 'kysely'
|
|
90
|
+
*
|
|
89
91
|
* db.schema
|
|
90
92
|
* .createTable('pet')
|
|
91
93
|
* .addColumn(
|
|
92
94
|
* 'number_of_legs',
|
|
93
95
|
* 'integer',
|
|
94
|
-
* (col) => col.defaultTo(
|
|
96
|
+
* (col) => col.defaultTo(sql`any SQL here`)
|
|
95
97
|
* )
|
|
96
98
|
* .execute()
|
|
97
99
|
* ```
|
|
@@ -103,10 +105,12 @@ export interface ColumnDefinitionBuilderInterface {
|
|
|
103
105
|
* ### Examples
|
|
104
106
|
*
|
|
105
107
|
* ```ts
|
|
108
|
+
* import { sql } from 'kysely'
|
|
109
|
+
*
|
|
106
110
|
* db.schema
|
|
107
111
|
* .createTable('pet')
|
|
108
112
|
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
109
|
-
* col.check(
|
|
113
|
+
* col.check(sql`number_of_legs < 5`)
|
|
110
114
|
* )
|
|
111
115
|
* .execute()
|
|
112
116
|
* ```
|
|
@@ -118,10 +122,12 @@ export interface ColumnDefinitionBuilderInterface {
|
|
|
118
122
|
* ### Examples
|
|
119
123
|
*
|
|
120
124
|
* ```ts
|
|
125
|
+
* import { sql } from 'kysely'
|
|
126
|
+
*
|
|
121
127
|
* db.schema
|
|
122
128
|
* .createTable('person')
|
|
123
129
|
* .addColumn('full_name', 'varchar(255)',
|
|
124
|
-
* (col) => col.generatedAlwaysAs(
|
|
130
|
+
* (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
125
131
|
* )
|
|
126
132
|
* .execute()
|
|
127
133
|
* ```
|
|
@@ -235,15 +241,17 @@ export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderI
|
|
|
235
241
|
* .execute()
|
|
236
242
|
* ```
|
|
237
243
|
*
|
|
238
|
-
* Raw expressions are also supported:
|
|
244
|
+
* Raw {@link sql} expressions are also supported:
|
|
239
245
|
*
|
|
240
246
|
* ```ts
|
|
247
|
+
* import { sql } from 'kysely'
|
|
248
|
+
*
|
|
241
249
|
* db.schema
|
|
242
250
|
* .createTable('pet')
|
|
243
251
|
* .addColumn(
|
|
244
252
|
* 'number_of_legs',
|
|
245
253
|
* 'integer',
|
|
246
|
-
* (col) => col.defaultTo(
|
|
254
|
+
* (col) => col.defaultTo(sql`any SQL here`)
|
|
247
255
|
* )
|
|
248
256
|
* .execute()
|
|
249
257
|
* ```
|
|
@@ -255,10 +263,12 @@ export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderI
|
|
|
255
263
|
* ### Examples
|
|
256
264
|
*
|
|
257
265
|
* ```ts
|
|
266
|
+
* import { sql } from 'kysely'
|
|
267
|
+
*
|
|
258
268
|
* db.schema
|
|
259
269
|
* .createTable('pet')
|
|
260
270
|
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
261
|
-
* col.check(
|
|
271
|
+
* col.check(sql`number_of_legs < 5`)
|
|
262
272
|
* )
|
|
263
273
|
* .execute()
|
|
264
274
|
* ```
|
|
@@ -270,10 +280,12 @@ export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderI
|
|
|
270
280
|
* ### Examples
|
|
271
281
|
*
|
|
272
282
|
* ```ts
|
|
283
|
+
* import { sql } from 'kysely'
|
|
284
|
+
*
|
|
273
285
|
* db.schema
|
|
274
286
|
* .createTable('person')
|
|
275
287
|
* .addColumn('full_name', 'varchar(255)',
|
|
276
|
-
* (col) => col.generatedAlwaysAs(
|
|
288
|
+
* (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
|
|
277
289
|
* )
|
|
278
290
|
* .execute()
|
|
279
291
|
* ```
|
|
@@ -34,10 +34,12 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
|
|
|
34
34
|
* ### Examples
|
|
35
35
|
*
|
|
36
36
|
* ```ts
|
|
37
|
+
* import { sql } from 'kysely'
|
|
38
|
+
*
|
|
37
39
|
* await db.schema
|
|
38
40
|
* .createIndex('person_first_name_index')
|
|
39
41
|
* .on('person')
|
|
40
|
-
* .expression(
|
|
42
|
+
* .expression(sql`first_name COLLATE "fi_FI"`)
|
|
41
43
|
* .execute()
|
|
42
44
|
* ```
|
|
43
45
|
*/
|
|
@@ -67,10 +67,12 @@ class CreateIndexBuilder {
|
|
|
67
67
|
* ### Examples
|
|
68
68
|
*
|
|
69
69
|
* ```ts
|
|
70
|
+
* import { sql } from 'kysely'
|
|
71
|
+
*
|
|
70
72
|
* await db.schema
|
|
71
73
|
* .createIndex('person_first_name_index')
|
|
72
74
|
* .on('person')
|
|
73
|
-
* .expression(
|
|
75
|
+
* .expression(sql`first_name COLLATE "fi_FI"`)
|
|
74
76
|
* .execute()
|
|
75
77
|
* ```
|
|
76
78
|
*/
|
|
@@ -39,13 +39,15 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
39
39
|
* ### Examples
|
|
40
40
|
*
|
|
41
41
|
* ```ts
|
|
42
|
+
* import { sql } from 'kysely'
|
|
43
|
+
*
|
|
42
44
|
* await db.schema
|
|
43
45
|
* .createTable('person')
|
|
44
46
|
* .addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey()),
|
|
45
47
|
* .addColumn('first_name', 'varchar(50)', (col) => col.notNull())
|
|
46
48
|
* .addColumn('last_name', 'varchar(255)')
|
|
47
49
|
* .addColumn('bank_balance', 'numeric(8, 2)')
|
|
48
|
-
* .addColumn('data',
|
|
50
|
+
* .addColumn('data', sql`customtype`)
|
|
49
51
|
* .addColumn('parent_id', 'integer', (col) =>
|
|
50
52
|
* col.references('person.id').onDelete('cascade'))
|
|
51
53
|
* )
|
|
@@ -111,7 +113,9 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
111
113
|
* ### Examples
|
|
112
114
|
*
|
|
113
115
|
* ```ts
|
|
114
|
-
*
|
|
116
|
+
* import { sql } from 'kysely'
|
|
117
|
+
*
|
|
118
|
+
* addCheckConstraint('check_legs', sql`number_of_legs < 5`)
|
|
115
119
|
* ```
|
|
116
120
|
*/
|
|
117
121
|
addCheckConstraint(constraintName: string, checkExpression: AnyRawBuilder): CreateTableBuilder<TB, C>;
|
|
@@ -8,12 +8,12 @@ const column_definition_builder_js_1 = require("./column-definition-builder.js")
|
|
|
8
8
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
9
9
|
const foreign_key_constraint_node_js_1 = require("../operation-node/foreign-key-constraint-node.js");
|
|
10
10
|
const column_node_js_1 = require("../operation-node/column-node.js");
|
|
11
|
-
const table_node_js_1 = require("../operation-node/table-node.js");
|
|
12
11
|
const foreign_key_constraint_builder_js_1 = require("./foreign-key-constraint-builder.js");
|
|
13
12
|
const data_type_parser_js_1 = require("../parser/data-type-parser.js");
|
|
14
13
|
const primary_constraint_node_js_1 = require("../operation-node/primary-constraint-node.js");
|
|
15
14
|
const unique_constraint_node_js_1 = require("../operation-node/unique-constraint-node.js");
|
|
16
15
|
const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js");
|
|
16
|
+
const table_parser_js_1 = require("../parser/table-parser.js");
|
|
17
17
|
/**
|
|
18
18
|
* This builder can be used to create a `create table` query.
|
|
19
19
|
*/
|
|
@@ -68,13 +68,15 @@ class CreateTableBuilder {
|
|
|
68
68
|
* ### Examples
|
|
69
69
|
*
|
|
70
70
|
* ```ts
|
|
71
|
+
* import { sql } from 'kysely'
|
|
72
|
+
*
|
|
71
73
|
* await db.schema
|
|
72
74
|
* .createTable('person')
|
|
73
75
|
* .addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey()),
|
|
74
76
|
* .addColumn('first_name', 'varchar(50)', (col) => col.notNull())
|
|
75
77
|
* .addColumn('last_name', 'varchar(255)')
|
|
76
78
|
* .addColumn('bank_balance', 'numeric(8, 2)')
|
|
77
|
-
* .addColumn('data',
|
|
79
|
+
* .addColumn('data', sql`customtype`)
|
|
78
80
|
* .addColumn('parent_id', 'integer', (col) =>
|
|
79
81
|
* col.references('person.id').onDelete('cascade'))
|
|
80
82
|
* )
|
|
@@ -156,7 +158,9 @@ class CreateTableBuilder {
|
|
|
156
158
|
* ### Examples
|
|
157
159
|
*
|
|
158
160
|
* ```ts
|
|
159
|
-
*
|
|
161
|
+
* import { sql } from 'kysely'
|
|
162
|
+
*
|
|
163
|
+
* addCheckConstraint('check_legs', sql`number_of_legs < 5`)
|
|
160
164
|
* ```
|
|
161
165
|
*/
|
|
162
166
|
addCheckConstraint(constraintName, checkExpression) {
|
|
@@ -195,7 +199,7 @@ class CreateTableBuilder {
|
|
|
195
199
|
* ```
|
|
196
200
|
*/
|
|
197
201
|
addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns, build = object_utils_js_1.noop) {
|
|
198
|
-
const builder = build(new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create),
|
|
202
|
+
const builder = build(new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create), (0, table_parser_js_1.parseTable)(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName)));
|
|
199
203
|
return new CreateTableBuilder({
|
|
200
204
|
...this.#props,
|
|
201
205
|
createTableNode: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.createTableNode, builder.toOperationNode()),
|
|
@@ -26,9 +26,9 @@ export declare class CreateViewBuilder implements OperationNodeSource, Compilabl
|
|
|
26
26
|
*
|
|
27
27
|
* WARNING!
|
|
28
28
|
* Some dialects don't support parameterized queries in DDL statements and therefore
|
|
29
|
-
* the query or
|
|
30
|
-
* opening an SQL injection vulnerability. DO NOT pass unchecked user input
|
|
31
|
-
* the query or
|
|
29
|
+
* the query or raw {@link sql } expression passed here is interpolated into a single
|
|
30
|
+
* string opening an SQL injection vulnerability. DO NOT pass unchecked user input
|
|
31
|
+
* into the query or raw expression passed to this method!
|
|
32
32
|
*/
|
|
33
33
|
as(query: AnySelectQueryBuilder | AnyRawBuilder): CreateViewBuilder;
|
|
34
34
|
toOperationNode(): CreateViewNode;
|
|
@@ -64,9 +64,9 @@ class CreateViewBuilder {
|
|
|
64
64
|
*
|
|
65
65
|
* WARNING!
|
|
66
66
|
* Some dialects don't support parameterized queries in DDL statements and therefore
|
|
67
|
-
* the query or
|
|
68
|
-
* opening an SQL injection vulnerability. DO NOT pass unchecked user input
|
|
69
|
-
* the query or
|
|
67
|
+
* the query or raw {@link sql } expression passed here is interpolated into a single
|
|
68
|
+
* string opening an SQL injection vulnerability. DO NOT pass unchecked user input
|
|
69
|
+
* into the query or raw expression passed to this method!
|
|
70
70
|
*/
|
|
71
71
|
as(query) {
|
|
72
72
|
const queryNode = query
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createQueryId = void 0;
|
|
4
|
-
const object_utils_js_1 = require("./object-utils.js");
|
|
5
4
|
const random_string_js_1 = require("./random-string.js");
|
|
6
5
|
function createQueryId() {
|
|
7
|
-
return (
|
|
8
|
-
queryId: (0, random_string_js_1.randomString)(8),
|
|
9
|
-
});
|
|
6
|
+
return new LazyQueryId();
|
|
10
7
|
}
|
|
11
8
|
exports.createQueryId = createQueryId;
|
|
9
|
+
class LazyQueryId {
|
|
10
|
+
#queryId;
|
|
11
|
+
get queryId() {
|
|
12
|
+
if (this.#queryId === undefined) {
|
|
13
|
+
this.#queryId = (0, random_string_js_1.randomString)(8);
|
|
14
|
+
}
|
|
15
|
+
return this.#queryId;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,7 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.randomString = void 0;
|
|
4
|
-
const CHARS =
|
|
4
|
+
const CHARS = [
|
|
5
|
+
'A',
|
|
6
|
+
'B',
|
|
7
|
+
'C',
|
|
8
|
+
'D',
|
|
9
|
+
'E',
|
|
10
|
+
'F',
|
|
11
|
+
'G',
|
|
12
|
+
'H',
|
|
13
|
+
'I',
|
|
14
|
+
'J',
|
|
15
|
+
'K',
|
|
16
|
+
'L',
|
|
17
|
+
'M',
|
|
18
|
+
'N',
|
|
19
|
+
'O',
|
|
20
|
+
'P',
|
|
21
|
+
'Q',
|
|
22
|
+
'R',
|
|
23
|
+
'S',
|
|
24
|
+
'T',
|
|
25
|
+
'U',
|
|
26
|
+
'V',
|
|
27
|
+
'W',
|
|
28
|
+
'X',
|
|
29
|
+
'Y',
|
|
30
|
+
'Z',
|
|
31
|
+
'a',
|
|
32
|
+
'b',
|
|
33
|
+
'c',
|
|
34
|
+
'd',
|
|
35
|
+
'e',
|
|
36
|
+
'f',
|
|
37
|
+
'g',
|
|
38
|
+
'h',
|
|
39
|
+
'i',
|
|
40
|
+
'j',
|
|
41
|
+
'k',
|
|
42
|
+
'l',
|
|
43
|
+
'm',
|
|
44
|
+
'n',
|
|
45
|
+
'o',
|
|
46
|
+
'p',
|
|
47
|
+
'q',
|
|
48
|
+
'r',
|
|
49
|
+
's',
|
|
50
|
+
't',
|
|
51
|
+
'u',
|
|
52
|
+
'v',
|
|
53
|
+
'w',
|
|
54
|
+
'x',
|
|
55
|
+
'y',
|
|
56
|
+
'z',
|
|
57
|
+
'0',
|
|
58
|
+
'1',
|
|
59
|
+
'2',
|
|
60
|
+
'3',
|
|
61
|
+
'4',
|
|
62
|
+
'5',
|
|
63
|
+
'6',
|
|
64
|
+
'7',
|
|
65
|
+
'8',
|
|
66
|
+
'9',
|
|
67
|
+
];
|
|
5
68
|
function randomString(length) {
|
|
6
69
|
let chars = '';
|
|
7
70
|
for (let i = 0; i < length; ++i) {
|
|
@@ -11,5 +74,5 @@ function randomString(length) {
|
|
|
11
74
|
}
|
|
12
75
|
exports.randomString = randomString;
|
|
13
76
|
function randomChar() {
|
|
14
|
-
return CHARS[
|
|
77
|
+
return CHARS[~~(Math.random() * CHARS.length)];
|
|
15
78
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="./mysql-adapter.d.ts" />
|
|
2
|
+
import { sql } from '../../raw-builder/sql.js';
|
|
2
3
|
import { DialectAdapterBase } from '../dialect-adapter-base.js';
|
|
3
4
|
const LOCK_ID = 'ea586330-2c93-47c8-908d-981d9d270f9d';
|
|
4
5
|
const LOCK_TIMEOUT_SECONDS = 60 * 60;
|
|
@@ -16,11 +17,9 @@ export class MysqlAdapter extends DialectAdapterBase {
|
|
|
16
17
|
// is released using `release_lock`. This way we know that the lock is either
|
|
17
18
|
// released by us after successfull or failed migrations OR it's released by
|
|
18
19
|
// MySQL if the process gets killed for some reason.
|
|
19
|
-
await db
|
|
20
|
-
.raw(`select get_lock('${LOCK_ID}', ${LOCK_TIMEOUT_SECONDS})`)
|
|
21
|
-
.execute();
|
|
20
|
+
await sql `select get_lock(${sql.literal(LOCK_ID)}, ${sql.literal(LOCK_TIMEOUT_SECONDS)})`.execute(db);
|
|
22
21
|
}
|
|
23
22
|
async releaseMigrationLock(db) {
|
|
24
|
-
await
|
|
23
|
+
await sql `select release_lock(${sql.literal(LOCK_ID)})`.execute(db);
|
|
25
24
|
}
|
|
26
25
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="./mysql-introspector.d.ts" />
|
|
2
2
|
import { MIGRATION_LOCK_TABLE, MIGRATION_TABLE, } from '../../migration/migrator.js';
|
|
3
3
|
import { freeze } from '../../util/object-utils.js';
|
|
4
|
+
import { sql } from '../../raw-builder/sql.js';
|
|
4
5
|
export class MysqlIntrospector {
|
|
5
6
|
#db;
|
|
6
7
|
constructor(db) {
|
|
@@ -10,7 +11,7 @@ export class MysqlIntrospector {
|
|
|
10
11
|
let query = this.#db
|
|
11
12
|
.selectFrom('information_schema.columns')
|
|
12
13
|
.selectAll()
|
|
13
|
-
.where('table_schema', '=',
|
|
14
|
+
.where('table_schema', '=', sql `database()`)
|
|
14
15
|
.castTo();
|
|
15
16
|
if (!options.withInternalKyselyTables) {
|
|
16
17
|
query = query
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="./postgres-adapter.d.ts" />
|
|
2
|
+
import { sql } from '../../raw-builder/sql.js';
|
|
2
3
|
import { DialectAdapterBase } from '../dialect-adapter-base.js';
|
|
3
4
|
// Random id for our transaction lock.
|
|
4
|
-
const LOCK_ID =
|
|
5
|
+
const LOCK_ID = 3853314791062309107n;
|
|
5
6
|
export class PostgresAdapter extends DialectAdapterBase {
|
|
6
7
|
get supportsTransactionalDdl() {
|
|
7
8
|
return true;
|
|
@@ -11,7 +12,7 @@ export class PostgresAdapter extends DialectAdapterBase {
|
|
|
11
12
|
}
|
|
12
13
|
async acquireMigrationLock(db) {
|
|
13
14
|
// Acquire a transaction level advisory lock.
|
|
14
|
-
await
|
|
15
|
+
await sql `select pg_advisory_xact_lock(${sql.literal(LOCK_ID)})`.execute(db);
|
|
15
16
|
}
|
|
16
17
|
async releaseMigrationLock() {
|
|
17
18
|
// Nothing to do here. `pg_advisory_xact_lock` is automatically released at the
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="./sqlite-introspector.d.ts" />
|
|
2
2
|
import { MIGRATION_LOCK_TABLE, MIGRATION_TABLE, } from '../../migration/migrator.js';
|
|
3
|
+
import { sql } from '../../raw-builder/sql.js';
|
|
3
4
|
export class SqliteIntrospector {
|
|
4
5
|
#db;
|
|
5
6
|
constructor(db) {
|
|
@@ -25,7 +26,7 @@ export class SqliteIntrospector {
|
|
|
25
26
|
async #getTableMetadata(table) {
|
|
26
27
|
const db = this.#db;
|
|
27
28
|
const columns = await db
|
|
28
|
-
.selectFrom(
|
|
29
|
+
.selectFrom(sql `PRAGMA_TABLE_INFO(${table})`.as('table_info'))
|
|
29
30
|
.select(['name', 'type', 'notnull'])
|
|
30
31
|
.castTo()
|
|
31
32
|
.execute();
|
|
@@ -4,5 +4,5 @@ export interface ConnectionProvider {
|
|
|
4
4
|
* Provides a connection for the callback and takes care of disposing
|
|
5
5
|
* the connection after the callback has been run.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
provideConnection<T>(consumer: (connection: DatabaseConnection) => Promise<T>): Promise<T>;
|
|
8
8
|
}
|
|
@@ -8,5 +8,5 @@ export declare class DefaultConnectionProvider implements ConnectionProvider {
|
|
|
8
8
|
* Provides a connection for the callback and takes care of disposing
|
|
9
9
|
* the connection after the callback has been run.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
provideConnection<T>(runner: (connection: DatabaseConnection) => Promise<T>): Promise<T>;
|
|
12
12
|
}
|
|
@@ -4,7 +4,7 @@ export class DefaultConnectionProvider {
|
|
|
4
4
|
constructor(driver) {
|
|
5
5
|
this.#driver = driver;
|
|
6
6
|
}
|
|
7
|
-
async
|
|
7
|
+
async provideConnection(runner) {
|
|
8
8
|
const connection = await this.#driver.acquireConnection();
|
|
9
9
|
try {
|
|
10
10
|
return await runner(connection);
|
|
@@ -7,5 +7,5 @@ export declare class SingleConnectionProvider implements ConnectionProvider {
|
|
|
7
7
|
* Provides a connection for the callback and takes care of disposing
|
|
8
8
|
* the connection after the callback has been run.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
provideConnection<T>(runner: (connection: DatabaseConnection) => Promise<T>): Promise<T>;
|
|
11
11
|
}
|
|
@@ -17,9 +17,11 @@ export * from './query-builder/delete-result.js';
|
|
|
17
17
|
export * from './query-builder/update-result.js';
|
|
18
18
|
export * from './query-builder/on-conflict-builder.js';
|
|
19
19
|
export * from './raw-builder/raw-builder.js';
|
|
20
|
+
export * from './raw-builder/sql.js';
|
|
20
21
|
export * from './query-executor/query-executor.js';
|
|
21
22
|
export * from './query-executor/default-query-executor.js';
|
|
22
23
|
export * from './query-executor/noop-query-executor.js';
|
|
24
|
+
export * from './query-executor/query-executor-provider.js';
|
|
23
25
|
export * from './query-compiler/default-query-compiler.js';
|
|
24
26
|
export * from './query-compiler/compiled-query.js';
|
|
25
27
|
export * from './schema/schema.js';
|
|
@@ -18,9 +18,11 @@ export * from './query-builder/delete-result.js';
|
|
|
18
18
|
export * from './query-builder/update-result.js';
|
|
19
19
|
export * from './query-builder/on-conflict-builder.js';
|
|
20
20
|
export * from './raw-builder/raw-builder.js';
|
|
21
|
+
export * from './raw-builder/sql.js';
|
|
21
22
|
export * from './query-executor/query-executor.js';
|
|
22
23
|
export * from './query-executor/default-query-executor.js';
|
|
23
24
|
export * from './query-executor/noop-query-executor.js';
|
|
25
|
+
export * from './query-executor/query-executor-provider.js';
|
|
24
26
|
export * from './query-compiler/default-query-compiler.js';
|
|
25
27
|
export * from './query-compiler/compiled-query.js';
|
|
26
28
|
export * from './schema/schema.js';
|
package/dist/esm/kysely.d.ts
CHANGED
|
@@ -6,11 +6,9 @@ import { QueryCreator } from './query-creator.js';
|
|
|
6
6
|
import { KyselyPlugin } from './plugin/kysely-plugin.js';
|
|
7
7
|
import { DatabaseIntrospector } from './dialect/database-introspector.js';
|
|
8
8
|
import { Driver, IsolationLevel } from './driver/driver.js';
|
|
9
|
-
import { ParseContext } from './parser/parse-context.js';
|
|
10
9
|
import { FunctionBuilder } from './query-builder/function-builder.js';
|
|
11
10
|
import { LogConfig } from './util/log.js';
|
|
12
|
-
import {
|
|
13
|
-
import { DialectAdapter } from './dialect/dialect-adapter.js';
|
|
11
|
+
import { QueryExecutorProvider } from './query-executor/query-executor-provider.js';
|
|
14
12
|
/**
|
|
15
13
|
* The main Kysely class.
|
|
16
14
|
*
|
|
@@ -54,7 +52,7 @@ import { DialectAdapter } from './dialect/dialect-adapter.js';
|
|
|
54
52
|
* in the database and values must be interfaces that describe the rows in those
|
|
55
53
|
* tables. See the examples above.
|
|
56
54
|
*/
|
|
57
|
-
export declare class Kysely<DB> extends QueryCreator<DB> {
|
|
55
|
+
export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecutorProvider {
|
|
58
56
|
#private;
|
|
59
57
|
constructor(args: KyselyConfig);
|
|
60
58
|
constructor(args: KyselyProps);
|
|
@@ -226,7 +224,7 @@ export declare class Kysely<DB> extends QueryCreator<DB> {
|
|
|
226
224
|
* @internal
|
|
227
225
|
* @private
|
|
228
226
|
*/
|
|
229
|
-
|
|
227
|
+
getExecutor(): QueryExecutor;
|
|
230
228
|
}
|
|
231
229
|
export declare class Transaction<DB> extends Kysely<DB> {
|
|
232
230
|
#private;
|
|
@@ -357,7 +355,6 @@ export interface KyselyProps {
|
|
|
357
355
|
readonly driver: Driver;
|
|
358
356
|
readonly executor: QueryExecutor;
|
|
359
357
|
readonly dialect: Dialect;
|
|
360
|
-
readonly parseContext: ParseContext;
|
|
361
358
|
}
|
|
362
359
|
export declare function isKyselyProps(obj: unknown): obj is KyselyProps;
|
|
363
360
|
export interface KyselyConfig {
|