kysely 0.12.0 → 0.14.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 +34 -10
- package/dist/cjs/{introspection → dialect}/database-introspector.d.ts +0 -0
- package/dist/cjs/{introspection → dialect}/database-introspector.js +0 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +36 -0
- package/dist/cjs/dialect/dialect.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +38 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -1
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +17 -1
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +29 -0
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +4 -1
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +38 -2
- package/dist/cjs/dialect/postgres/postgres-adapter.js +2 -1
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +17 -1
- package/dist/cjs/dialect/postgres/postgres-driver.d.ts +29 -0
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +4 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +38 -2
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +17 -1
- package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +29 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +4 -1
- package/dist/cjs/driver/default-connection-provider.d.ts +4 -0
- package/dist/cjs/driver/runtime-driver.d.ts +29 -0
- package/dist/cjs/driver/single-connection-provider.d.ts +4 -0
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/kysely.d.ts +152 -1
- package/dist/cjs/kysely.js +37 -0
- package/dist/cjs/migration/migration.d.ts +154 -11
- package/dist/cjs/migration/migration.js +256 -135
- package/dist/cjs/operation-node/check-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/check-constraint-node.js +2 -3
- package/dist/cjs/operation-node/column-definition-node.d.ts +8 -7
- package/dist/cjs/operation-node/column-definition-node.js +0 -4
- package/dist/cjs/operation-node/common-table-expression-name-node.d.ts +15 -0
- package/dist/cjs/operation-node/common-table-expression-name-node.js +23 -0
- package/dist/cjs/operation-node/common-table-expression-node.d.ts +3 -3
- package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/generated-node.d.ts +20 -0
- package/dist/cjs/operation-node/generated-node.js +31 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +13 -2
- package/dist/cjs/operation-node/on-conflict-node.js +39 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -2
- package/dist/cjs/operation-node/operation-node-transformer.js +22 -6
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -2
- package/dist/cjs/operation-node/operation-node-visitor.js +2 -1
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/with-node.d.ts +3 -1
- package/dist/cjs/operation-node/with-node.js +2 -1
- package/dist/cjs/package.json +1 -3
- package/dist/cjs/parser/parse-context.d.ts +14 -0
- package/dist/cjs/parser/with-parser.d.ts +32 -5
- package/dist/cjs/parser/with-parser.js +13 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +36 -2
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +34 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +8 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +545 -0
- package/dist/cjs/query-builder/insert-query-builder.d.ts +142 -76
- package/dist/cjs/query-builder/insert-query-builder.js +150 -15
- package/dist/cjs/query-builder/join-interface.d.ts +3 -6
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +684 -0
- package/dist/cjs/query-builder/on-conflict-builder.js +323 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
- package/dist/cjs/query-builder/select-query-builder.d.ts +513 -2
- package/dist/cjs/query-builder/select-query-builder.js +2 -2
- package/dist/cjs/query-builder/update-query-builder.d.ts +547 -2
- package/dist/cjs/query-builder/update-query-builder.js +2 -2
- package/dist/cjs/query-builder/where-interface.d.ts +7 -10
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +4 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +48 -8
- package/dist/cjs/query-creator.d.ts +27 -3
- package/dist/cjs/query-creator.js +33 -1
- package/dist/cjs/query-executor/default-query-executor.d.ts +19 -0
- package/dist/cjs/query-executor/noop-query-executor.d.ts +19 -0
- package/dist/cjs/raw-builder/raw-builder.js +1 -1
- package/dist/cjs/schema/alter-table-builder.d.ts +253 -5
- package/dist/cjs/schema/alter-table-builder.js +45 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +146 -6
- package/dist/cjs/schema/column-definition-builder.js +21 -8
- package/dist/cjs/schema/create-index-builder.d.ts +3 -2
- package/dist/cjs/schema/create-index-builder.js +2 -2
- package/dist/cjs/schema/create-table-builder.d.ts +3 -2
- package/dist/cjs/schema/create-table-builder.js +2 -2
- package/dist/esm/{introspection → dialect}/database-introspector.d.ts +0 -0
- package/dist/esm/{introspection → dialect}/database-introspector.js +0 -0
- package/dist/esm/dialect/dialect-adapter-base.d.ts +36 -0
- package/dist/esm/dialect/dialect.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +38 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +2 -1
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +17 -1
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +29 -0
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +4 -1
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +38 -2
- package/dist/esm/dialect/postgres/postgres-adapter.js +2 -1
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +17 -1
- package/dist/esm/dialect/postgres/postgres-driver.d.ts +29 -0
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +4 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +38 -2
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +17 -1
- package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +29 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +4 -1
- package/dist/esm/driver/default-connection-provider.d.ts +4 -0
- package/dist/esm/driver/runtime-driver.d.ts +29 -0
- package/dist/esm/driver/single-connection-provider.d.ts +4 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +3 -2
- package/dist/esm/kysely.d.ts +152 -1
- package/dist/esm/kysely.js +37 -0
- package/dist/esm/migration/migration.d.ts +154 -11
- package/dist/esm/migration/migration.js +255 -134
- package/dist/esm/operation-node/check-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/check-constraint-node.js +2 -3
- package/dist/esm/operation-node/column-definition-node.d.ts +8 -7
- package/dist/esm/operation-node/column-definition-node.js +0 -4
- package/dist/esm/operation-node/common-table-expression-name-node.d.ts +15 -0
- package/dist/esm/operation-node/common-table-expression-name-node.js +20 -0
- package/dist/esm/operation-node/common-table-expression-node.d.ts +3 -3
- package/dist/esm/operation-node/data-type-node.d.ts +1 -1
- package/dist/esm/operation-node/generated-node.d.ts +20 -0
- package/dist/esm/operation-node/generated-node.js +28 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +13 -2
- package/dist/esm/operation-node/on-conflict-node.js +39 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -2
- package/dist/esm/operation-node/operation-node-transformer.js +22 -6
- package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -2
- package/dist/esm/operation-node/operation-node-visitor.js +2 -1
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/with-node.d.ts +3 -1
- package/dist/esm/operation-node/with-node.js +2 -1
- package/dist/esm/package.json +1 -3
- package/dist/esm/parser/parse-context.d.ts +14 -0
- package/dist/esm/parser/with-parser.d.ts +32 -5
- package/dist/esm/parser/with-parser.js +13 -2
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +36 -2
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +34 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +8 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +545 -0
- package/dist/esm/query-builder/insert-query-builder.d.ts +142 -76
- package/dist/esm/query-builder/insert-query-builder.js +150 -15
- package/dist/esm/query-builder/join-interface.d.ts +3 -6
- package/dist/esm/query-builder/on-conflict-builder.d.ts +684 -0
- package/dist/esm/query-builder/on-conflict-builder.js +317 -0
- package/dist/esm/query-builder/returning-interface.d.ts +1 -1
- package/dist/esm/query-builder/select-query-builder.d.ts +513 -2
- package/dist/esm/query-builder/select-query-builder.js +2 -2
- package/dist/esm/query-builder/update-query-builder.d.ts +547 -2
- package/dist/esm/query-builder/update-query-builder.js +2 -2
- package/dist/esm/query-builder/where-interface.d.ts +7 -10
- package/dist/esm/query-compiler/default-query-compiler.d.ts +4 -2
- package/dist/esm/query-compiler/default-query-compiler.js +48 -8
- package/dist/esm/query-creator.d.ts +27 -3
- package/dist/esm/query-creator.js +33 -1
- package/dist/esm/query-executor/default-query-executor.d.ts +19 -0
- package/dist/esm/query-executor/noop-query-executor.d.ts +19 -0
- package/dist/esm/raw-builder/raw-builder.js +1 -1
- package/dist/esm/schema/alter-table-builder.d.ts +253 -5
- package/dist/esm/schema/alter-table-builder.js +45 -9
- package/dist/esm/schema/column-definition-builder.d.ts +146 -6
- package/dist/esm/schema/column-definition-builder.js +21 -8
- package/dist/esm/schema/create-index-builder.d.ts +3 -2
- package/dist/esm/schema/create-index-builder.js +2 -2
- package/dist/esm/schema/create-table-builder.d.ts +3 -2
- package/dist/esm/schema/create-table-builder.js +2 -2
- package/package.json +8 -6
- package/dist/cjs/operation-node/generated-always-as-node.d.ts +0 -16
- package/dist/cjs/operation-node/generated-always-as-node.js +0 -25
- package/dist/cjs/parser/on-conflict-parser.d.ts +0 -10
- package/dist/cjs/parser/on-conflict-parser.js +0 -35
- package/dist/esm/operation-node/generated-always-as-node.d.ts +0 -16
- package/dist/esm/operation-node/generated-always-as-node.js +0 -22
- package/dist/esm/parser/on-conflict-parser.d.ts +0 -10
- package/dist/esm/parser/on-conflict-parser.js +0 -30
|
@@ -66,6 +66,12 @@ export interface ColumnDefinitionBuilderInterface {
|
|
|
66
66
|
* Adds a `not null` constraint for the column.
|
|
67
67
|
*/
|
|
68
68
|
notNull(): ColumnDefinitionBuilderInterface;
|
|
69
|
+
/**
|
|
70
|
+
* Adds a `unsigned` modifier for the column.
|
|
71
|
+
*
|
|
72
|
+
* This only works on some dialects like MySQL.
|
|
73
|
+
*/
|
|
74
|
+
unsigned(): ColumnDefinitionBuilderInterface;
|
|
69
75
|
/**
|
|
70
76
|
* Adds a default value constraint for the column.
|
|
71
77
|
*
|
|
@@ -87,11 +93,13 @@ export interface ColumnDefinitionBuilderInterface {
|
|
|
87
93
|
* ```ts
|
|
88
94
|
* db.schema
|
|
89
95
|
* .createTable('pet')
|
|
90
|
-
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
96
|
+
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
97
|
+
* col.check(db.raw('number_of_legs < 5'))
|
|
98
|
+
* )
|
|
91
99
|
* .execute()
|
|
92
100
|
* ```
|
|
93
101
|
*/
|
|
94
|
-
check(
|
|
102
|
+
check(expression: AnyRawBuilder): ColumnDefinitionBuilderInterface;
|
|
95
103
|
/**
|
|
96
104
|
* Makes the column a generated column using a `generated always as` statement.
|
|
97
105
|
*
|
|
@@ -101,12 +109,20 @@ export interface ColumnDefinitionBuilderInterface {
|
|
|
101
109
|
* db.schema
|
|
102
110
|
* .createTable('person')
|
|
103
111
|
* .addColumn('full_name', 'varchar(255)',
|
|
104
|
-
* (col) => col.generatedAlwaysAs("concat(first_name, ' ', last_name)")
|
|
112
|
+
* (col) => col.generatedAlwaysAs(db.raw("concat(first_name, ' ', last_name)"))
|
|
105
113
|
* )
|
|
106
114
|
* .execute()
|
|
107
115
|
* ```
|
|
108
116
|
*/
|
|
109
|
-
generatedAlwaysAs(
|
|
117
|
+
generatedAlwaysAs(expression: AnyRawBuilder): ColumnDefinitionBuilderInterface;
|
|
118
|
+
/**
|
|
119
|
+
* Adds the `generated always as identity` specifier on supported dialects.
|
|
120
|
+
*/
|
|
121
|
+
generatedAlwaysAsIdentity(): ColumnDefinitionBuilderInterface;
|
|
122
|
+
/**
|
|
123
|
+
* Adds the `generated by default as identity` specifier on supported dialects.
|
|
124
|
+
*/
|
|
125
|
+
generatedByDefaultAsIdentity(): ColumnDefinitionBuilderInterface;
|
|
110
126
|
/**
|
|
111
127
|
* Makes a generated column stored instead of virtual. This method can only
|
|
112
128
|
* be used with {@link generatedAlwaysAs}
|
|
@@ -128,16 +144,140 @@ export interface ColumnDefinitionBuilderInterface {
|
|
|
128
144
|
export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderInterface, OperationNodeSource {
|
|
129
145
|
#private;
|
|
130
146
|
constructor(node: ColumnDefinitionNode);
|
|
147
|
+
/**
|
|
148
|
+
* Adds `auto_increment` or `autoincrement` to the column definition
|
|
149
|
+
* depending on the dialect.
|
|
150
|
+
*
|
|
151
|
+
* Some dialects like PostgreSQL don't support this. On PostgreSQL
|
|
152
|
+
* you can use the `serial` or `bigserial` data type instead.
|
|
153
|
+
*/
|
|
131
154
|
autoIncrement(): ColumnDefinitionBuilder;
|
|
155
|
+
/**
|
|
156
|
+
* Makes the column the primary key.
|
|
157
|
+
*
|
|
158
|
+
* If you want to specify a composite primary key use the
|
|
159
|
+
* {@link TableBuilder.addPrimaryKeyConstraint} method.
|
|
160
|
+
*/
|
|
132
161
|
primaryKey(): ColumnDefinitionBuilder;
|
|
162
|
+
/**
|
|
163
|
+
* Adds a foreign key constraint for the column.
|
|
164
|
+
*
|
|
165
|
+
* If your database engine doesn't support foreign key constraints in the
|
|
166
|
+
* column definition (like MySQL 5) you need to call the table level
|
|
167
|
+
* {@link TableBuilder.addForeignKeyConstraint} method instead.
|
|
168
|
+
*
|
|
169
|
+
* ### Examples
|
|
170
|
+
*
|
|
171
|
+
* ```ts
|
|
172
|
+
* col.references('person.id')
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
133
175
|
references(ref: string): ColumnDefinitionBuilder;
|
|
176
|
+
/**
|
|
177
|
+
* Adds an `on delete` constraint for the foreign key column.
|
|
178
|
+
*
|
|
179
|
+
* If your database engine doesn't support foreign key constraints in the
|
|
180
|
+
* column definition (like MySQL 5) you need to call the table level
|
|
181
|
+
* {@link TableBuilder.addForeignKeyConstraint} method instead.
|
|
182
|
+
*
|
|
183
|
+
* ### Examples
|
|
184
|
+
*
|
|
185
|
+
* ```ts
|
|
186
|
+
* col.references('person.id').onDelete('cascade')
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
134
189
|
onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilder;
|
|
190
|
+
/**
|
|
191
|
+
* Adds an `on update` constraint for the foreign key column.
|
|
192
|
+
*
|
|
193
|
+
* ### Examples
|
|
194
|
+
*
|
|
195
|
+
* ```ts
|
|
196
|
+
* col.references('person.id').onUpdate('cascade')
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
135
199
|
onUpdate(onUpdate: OnModifyForeignAction): ColumnDefinitionBuilder;
|
|
200
|
+
/**
|
|
201
|
+
* Adds a unique constraint for the column.
|
|
202
|
+
*/
|
|
136
203
|
unique(): ColumnDefinitionBuilder;
|
|
204
|
+
/**
|
|
205
|
+
* Adds a `not null` constraint for the column.
|
|
206
|
+
*/
|
|
137
207
|
notNull(): ColumnDefinitionBuilder;
|
|
208
|
+
/**
|
|
209
|
+
* Adds a `unsigned` modifier for the column.
|
|
210
|
+
*
|
|
211
|
+
* This only works on some dialects like MySQL.
|
|
212
|
+
*/
|
|
213
|
+
unsigned(): ColumnDefinitionBuilder;
|
|
214
|
+
/**
|
|
215
|
+
* Adds a default value constraint for the column.
|
|
216
|
+
*
|
|
217
|
+
* ### Examples
|
|
218
|
+
*
|
|
219
|
+
* ```ts
|
|
220
|
+
* db.schema
|
|
221
|
+
* .createTable('pet')
|
|
222
|
+
* .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
|
|
223
|
+
* .execute()
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
138
226
|
defaultTo(value: DefaultValueExpression): ColumnDefinitionBuilder;
|
|
139
|
-
|
|
140
|
-
|
|
227
|
+
/**
|
|
228
|
+
* Adds a check constraint for the column.
|
|
229
|
+
*
|
|
230
|
+
* ### Examples
|
|
231
|
+
*
|
|
232
|
+
* ```ts
|
|
233
|
+
* db.schema
|
|
234
|
+
* .createTable('pet')
|
|
235
|
+
* .addColumn('number_of_legs', 'integer', (col) =>
|
|
236
|
+
* col.check(db.raw('number_of_legs < 5'))
|
|
237
|
+
* )
|
|
238
|
+
* .execute()
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
check(expression: AnyRawBuilder): ColumnDefinitionBuilder;
|
|
242
|
+
/**
|
|
243
|
+
* Makes the column a generated column using a `generated always as` statement.
|
|
244
|
+
*
|
|
245
|
+
* ### Examples
|
|
246
|
+
*
|
|
247
|
+
* ```ts
|
|
248
|
+
* db.schema
|
|
249
|
+
* .createTable('person')
|
|
250
|
+
* .addColumn('full_name', 'varchar(255)',
|
|
251
|
+
* (col) => col.generatedAlwaysAs(db.raw("concat(first_name, ' ', last_name)"))
|
|
252
|
+
* )
|
|
253
|
+
* .execute()
|
|
254
|
+
* ```
|
|
255
|
+
*/
|
|
256
|
+
generatedAlwaysAs(expression: AnyRawBuilder): ColumnDefinitionBuilder;
|
|
257
|
+
/**
|
|
258
|
+
* Adds the `generated always as identity` specifier on supported dialects.
|
|
259
|
+
*/
|
|
260
|
+
generatedAlwaysAsIdentity(): ColumnDefinitionBuilder;
|
|
261
|
+
/**
|
|
262
|
+
* Adds the `generated by default as identity` specifier on supported dialects.
|
|
263
|
+
*/
|
|
264
|
+
generatedByDefaultAsIdentity(): ColumnDefinitionBuilder;
|
|
265
|
+
/**
|
|
266
|
+
* Makes a generated column stored instead of virtual. This method can only
|
|
267
|
+
* be used with {@link generatedAlwaysAs}
|
|
268
|
+
*
|
|
269
|
+
* ### Examples
|
|
270
|
+
*
|
|
271
|
+
* ```ts
|
|
272
|
+
* db.schema
|
|
273
|
+
* .createTable('person')
|
|
274
|
+
* .addColumn('full_name', 'varchar(255)', (col) => col
|
|
275
|
+
* .generatedAlwaysAs("concat(first_name, ' ', last_name)")
|
|
276
|
+
* .stored()
|
|
277
|
+
* )
|
|
278
|
+
* .execute()
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
141
281
|
stored(): ColumnDefinitionBuilder;
|
|
142
282
|
toOperationNode(): ColumnDefinitionNode;
|
|
143
283
|
}
|
|
@@ -6,7 +6,7 @@ import { parseStringReference } from '../parser/reference-parser.js';
|
|
|
6
6
|
import { preventAwait } from '../util/prevent-await.js';
|
|
7
7
|
import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
|
|
8
8
|
import { parseDefaultValueExpression, } from '../parser/default-value-parser.js';
|
|
9
|
-
import {
|
|
9
|
+
import { GeneratedNode } from '../operation-node/generated-node.js';
|
|
10
10
|
import { DefaultValueNode } from '../operation-node/default-value-node.js';
|
|
11
11
|
export class ColumnDefinitionBuilder {
|
|
12
12
|
#node;
|
|
@@ -50,29 +50,42 @@ export class ColumnDefinitionBuilder {
|
|
|
50
50
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { unique: true }));
|
|
51
51
|
}
|
|
52
52
|
notNull() {
|
|
53
|
-
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
53
|
+
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { notNull: true }));
|
|
54
|
+
}
|
|
55
|
+
unsigned() {
|
|
56
|
+
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, { unsigned: true }));
|
|
54
57
|
}
|
|
55
58
|
defaultTo(value) {
|
|
56
59
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
57
60
|
defaultTo: DefaultValueNode.create(parseDefaultValueExpression(value)),
|
|
58
61
|
}));
|
|
59
62
|
}
|
|
60
|
-
check(
|
|
63
|
+
check(expression) {
|
|
64
|
+
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
65
|
+
check: CheckConstraintNode.create(expression.toOperationNode()),
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
generatedAlwaysAs(expression) {
|
|
69
|
+
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
70
|
+
generated: GeneratedNode.createWithExpression(expression.toOperationNode()),
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
generatedAlwaysAsIdentity() {
|
|
61
74
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
62
|
-
|
|
75
|
+
generated: GeneratedNode.create({ identity: true, always: true }),
|
|
63
76
|
}));
|
|
64
77
|
}
|
|
65
|
-
|
|
78
|
+
generatedByDefaultAsIdentity() {
|
|
66
79
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
67
|
-
|
|
80
|
+
generated: GeneratedNode.create({ identity: true, byDefault: true }),
|
|
68
81
|
}));
|
|
69
82
|
}
|
|
70
83
|
stored() {
|
|
71
|
-
if (!this.#node.
|
|
84
|
+
if (!this.#node.generated) {
|
|
72
85
|
throw new Error('stored() can only be called after generatedAlwaysAs');
|
|
73
86
|
}
|
|
74
87
|
return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
|
|
75
|
-
|
|
88
|
+
generated: GeneratedNode.cloneWith(this.#node.generated, {
|
|
76
89
|
stored: true,
|
|
77
90
|
}),
|
|
78
91
|
}));
|
|
@@ -4,6 +4,7 @@ import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
|
4
4
|
import { Compilable } from '../util/compilable.js';
|
|
5
5
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
6
6
|
import { QueryId } from '../util/query-id.js';
|
|
7
|
+
import { AnyRawBuilder } from '../util/type-utils.js';
|
|
7
8
|
export declare class CreateIndexBuilder implements OperationNodeSource, Compilable {
|
|
8
9
|
#private;
|
|
9
10
|
constructor(props: CreateIndexBuilderProps);
|
|
@@ -36,11 +37,11 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
|
|
|
36
37
|
* await db.schema
|
|
37
38
|
* .createIndex('person_first_name_index')
|
|
38
39
|
* .on('person')
|
|
39
|
-
* .expression('first_name COLLATE "fi_FI"')
|
|
40
|
+
* .expression(db.raw('first_name COLLATE "fi_FI"'))
|
|
40
41
|
* .execute()
|
|
41
42
|
* ```
|
|
42
43
|
*/
|
|
43
|
-
expression(expression:
|
|
44
|
+
expression(expression: AnyRawBuilder): CreateIndexBuilder;
|
|
44
45
|
/**
|
|
45
46
|
* Specifies the index type.
|
|
46
47
|
*/
|
|
@@ -67,7 +67,7 @@ export class CreateIndexBuilder {
|
|
|
67
67
|
* await db.schema
|
|
68
68
|
* .createIndex('person_first_name_index')
|
|
69
69
|
* .on('person')
|
|
70
|
-
* .expression('first_name COLLATE "fi_FI"')
|
|
70
|
+
* .expression(db.raw('first_name COLLATE "fi_FI"'))
|
|
71
71
|
* .execute()
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
@@ -75,7 +75,7 @@ export class CreateIndexBuilder {
|
|
|
75
75
|
return new CreateIndexBuilder({
|
|
76
76
|
...this.#props,
|
|
77
77
|
createIndexNode: CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
78
|
-
expression:
|
|
78
|
+
expression: expression.toOperationNode(),
|
|
79
79
|
}),
|
|
80
80
|
});
|
|
81
81
|
}
|
|
@@ -7,6 +7,7 @@ import { ColumnDefinitionBuilder } from './column-definition-builder.js';
|
|
|
7
7
|
import { QueryId } from '../util/query-id.js';
|
|
8
8
|
import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
|
|
9
9
|
import { DataTypeExpression } from '../parser/data-type-parser.js';
|
|
10
|
+
import { AnyRawBuilder } from '../util/type-utils.js';
|
|
10
11
|
/**
|
|
11
12
|
* This builder can be used to create a `create table` query.
|
|
12
13
|
*/
|
|
@@ -110,10 +111,10 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
110
111
|
* ### Examples
|
|
111
112
|
*
|
|
112
113
|
* ```ts
|
|
113
|
-
* addCheckConstraint('check_legs', 'number_of_legs < 5')
|
|
114
|
+
* addCheckConstraint('check_legs', db.raw('number_of_legs < 5'))
|
|
114
115
|
* ```
|
|
115
116
|
*/
|
|
116
|
-
addCheckConstraint(constraintName: string, checkExpression:
|
|
117
|
+
addCheckConstraint(constraintName: string, checkExpression: AnyRawBuilder): CreateTableBuilder<TB, C>;
|
|
117
118
|
/**
|
|
118
119
|
* Adds a foreign key constraint.
|
|
119
120
|
*
|
|
@@ -153,13 +153,13 @@ export class CreateTableBuilder {
|
|
|
153
153
|
* ### Examples
|
|
154
154
|
*
|
|
155
155
|
* ```ts
|
|
156
|
-
* addCheckConstraint('check_legs', 'number_of_legs < 5')
|
|
156
|
+
* addCheckConstraint('check_legs', db.raw('number_of_legs < 5'))
|
|
157
157
|
* ```
|
|
158
158
|
*/
|
|
159
159
|
addCheckConstraint(constraintName, checkExpression) {
|
|
160
160
|
return new CreateTableBuilder({
|
|
161
161
|
...this.#props,
|
|
162
|
-
createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, CheckConstraintNode.create(checkExpression, constraintName)),
|
|
162
|
+
createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
165
|
/**
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kysely",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "Type safe SQL query builder",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git://github.com/koskimas/kysely.git"
|
|
8
8
|
},
|
|
9
9
|
"engines": {
|
|
10
|
-
"node": ">=
|
|
10
|
+
"node": ">=14.0.0"
|
|
11
11
|
},
|
|
12
12
|
"main": "dist/cjs/index.js",
|
|
13
13
|
"module": "dist/esm/index.js",
|
|
@@ -20,16 +20,18 @@
|
|
|
20
20
|
"scripts": {
|
|
21
21
|
"test:build": "rm -rf test/dist && tsc -p test",
|
|
22
22
|
"clean": "rm -rf dist && rm -rf test/dist",
|
|
23
|
-
"test": "npm run clean && npm run build:cjs && npm run test:build && npm run test:integration && npm run test:typings && npm run test:esmimports",
|
|
23
|
+
"test": "npm run clean && npm run build:cjs && npm run script:copy-interface-doc && npm run test:build && npm run test:integration && npm run test:typings && npm run test:esmimports",
|
|
24
24
|
"test:integration": "mocha --timeout 15000 test/dist/**/*.test.js",
|
|
25
25
|
"test:typings": "tsd test/typings",
|
|
26
|
-
"test:esmimports": "node check-esm-imports.js",
|
|
26
|
+
"test:esmimports": "node scripts/check-esm-imports.js",
|
|
27
27
|
"prettier": "prettier --write src/**/*.ts test/**/*.ts",
|
|
28
|
-
"build": "npm run clean && npm run build:esm && npm run build:cjs &&
|
|
28
|
+
"build": "npm run clean && npm run build:esm && npm run build:cjs && npm run script:module-fixup && npm run script:copy-interface-doc",
|
|
29
29
|
"build:esm": "tsc -p tsconfig.json",
|
|
30
30
|
"build:cjs": "tsc -p tsconfig-cjs.json",
|
|
31
31
|
"docs:build": "typedoc --excludePrivate --excludeInternal --customCss ./docs-theme.css src/index.ts && npm run docs:postprocess",
|
|
32
|
-
"docs:postprocess": "node post-process-docs.js",
|
|
32
|
+
"docs:postprocess": "node scripts/post-process-docs.js",
|
|
33
|
+
"script:module-fixup": "node scripts/module-fixup.js",
|
|
34
|
+
"script:copy-interface-doc": "node scripts/copy-interface-documentation.js",
|
|
33
35
|
"prepublishOnly": "npm run build"
|
|
34
36
|
},
|
|
35
37
|
"author": "Sami Koskimäki <sami@jakso.me>",
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
}>;
|
|
@@ -1,25 +0,0 @@
|
|
|
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
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
2
|
-
import { AnyColumn } from '../util/type-utils.js';
|
|
3
|
-
import { ParseContext } from './parse-context.js';
|
|
4
|
-
import { MutationObject } from './update-set-parser.js';
|
|
5
|
-
export declare type OnConflictConstraintTarget = {
|
|
6
|
-
constraint: string;
|
|
7
|
-
};
|
|
8
|
-
export declare type OnConflictTargetExpression<DB, TB extends keyof DB> = AnyColumn<DB, TB> | ReadonlyArray<AnyColumn<DB, TB>> | OnConflictConstraintTarget;
|
|
9
|
-
export declare function parseOnConflictDoNothing(target: OnConflictTargetExpression<any, any>): OnConflictNode;
|
|
10
|
-
export declare function parseOnConflictUpdate(ctx: ParseContext, target: OnConflictTargetExpression<any, any>, updates: MutationObject<any, any>): OnConflictNode;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseOnConflictUpdate = exports.parseOnConflictDoNothing = void 0;
|
|
4
|
-
const identifier_node_js_1 = require("../operation-node/identifier-node.js");
|
|
5
|
-
const on_conflict_node_js_1 = require("../operation-node/on-conflict-node.js");
|
|
6
|
-
const object_utils_js_1 = require("../util/object-utils.js");
|
|
7
|
-
const reference_parser_js_1 = require("./reference-parser.js");
|
|
8
|
-
const update_set_parser_js_1 = require("./update-set-parser.js");
|
|
9
|
-
function parseOnConflictDoNothing(target) {
|
|
10
|
-
return on_conflict_node_js_1.OnConflictNode.create({
|
|
11
|
-
...parseConflictTarget(target),
|
|
12
|
-
doNothing: true,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
exports.parseOnConflictDoNothing = parseOnConflictDoNothing;
|
|
16
|
-
function parseOnConflictUpdate(ctx, target, updates) {
|
|
17
|
-
return on_conflict_node_js_1.OnConflictNode.create({
|
|
18
|
-
...parseConflictTarget(target),
|
|
19
|
-
updates: (0, update_set_parser_js_1.parseUpdateObject)(ctx, updates),
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
exports.parseOnConflictUpdate = parseOnConflictUpdate;
|
|
23
|
-
function parseConflictTarget(target) {
|
|
24
|
-
if ((0, object_utils_js_1.isString)(target) || (0, object_utils_js_1.isReadonlyArray)(target)) {
|
|
25
|
-
return {
|
|
26
|
-
columns: (0, object_utils_js_1.asReadonlyArray)(target).map(reference_parser_js_1.parseColumnName),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
if ((0, object_utils_js_1.isObject)(target) && !(0, object_utils_js_1.isReadonlyArray)(target)) {
|
|
30
|
-
return {
|
|
31
|
-
constraint: identifier_node_js_1.IdentifierNode.create(target.constraint),
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
throw new Error(`invalid on conflict target ${JSON.stringify(target)}`);
|
|
35
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
}>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { freeze } from '../util/object-utils.js';
|
|
2
|
-
import { RawNode } from './raw-node.js';
|
|
3
|
-
/**
|
|
4
|
-
* @internal
|
|
5
|
-
*/
|
|
6
|
-
export const GeneratedAlwaysAsNode = freeze({
|
|
7
|
-
is(node) {
|
|
8
|
-
return node.kind === 'GeneratedAlwaysAsNode';
|
|
9
|
-
},
|
|
10
|
-
create(expression) {
|
|
11
|
-
return freeze({
|
|
12
|
-
kind: 'GeneratedAlwaysAsNode',
|
|
13
|
-
expression: RawNode.createWithSql(expression),
|
|
14
|
-
});
|
|
15
|
-
},
|
|
16
|
-
cloneWith(node, params) {
|
|
17
|
-
return freeze({
|
|
18
|
-
...node,
|
|
19
|
-
...params,
|
|
20
|
-
});
|
|
21
|
-
},
|
|
22
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
2
|
-
import { AnyColumn } from '../util/type-utils.js';
|
|
3
|
-
import { ParseContext } from './parse-context.js';
|
|
4
|
-
import { MutationObject } from './update-set-parser.js';
|
|
5
|
-
export declare type OnConflictConstraintTarget = {
|
|
6
|
-
constraint: string;
|
|
7
|
-
};
|
|
8
|
-
export declare type OnConflictTargetExpression<DB, TB extends keyof DB> = AnyColumn<DB, TB> | ReadonlyArray<AnyColumn<DB, TB>> | OnConflictConstraintTarget;
|
|
9
|
-
export declare function parseOnConflictDoNothing(target: OnConflictTargetExpression<any, any>): OnConflictNode;
|
|
10
|
-
export declare function parseOnConflictUpdate(ctx: ParseContext, target: OnConflictTargetExpression<any, any>, updates: MutationObject<any, any>): OnConflictNode;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { IdentifierNode } from '../operation-node/identifier-node.js';
|
|
2
|
-
import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
3
|
-
import { asReadonlyArray, isObject, isReadonlyArray, isString, } from '../util/object-utils.js';
|
|
4
|
-
import { parseColumnName } from './reference-parser.js';
|
|
5
|
-
import { parseUpdateObject } from './update-set-parser.js';
|
|
6
|
-
export function parseOnConflictDoNothing(target) {
|
|
7
|
-
return OnConflictNode.create({
|
|
8
|
-
...parseConflictTarget(target),
|
|
9
|
-
doNothing: true,
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
export function parseOnConflictUpdate(ctx, target, updates) {
|
|
13
|
-
return OnConflictNode.create({
|
|
14
|
-
...parseConflictTarget(target),
|
|
15
|
-
updates: parseUpdateObject(ctx, updates),
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
function parseConflictTarget(target) {
|
|
19
|
-
if (isString(target) || isReadonlyArray(target)) {
|
|
20
|
-
return {
|
|
21
|
-
columns: asReadonlyArray(target).map(parseColumnName),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
if (isObject(target) && !isReadonlyArray(target)) {
|
|
25
|
-
return {
|
|
26
|
-
constraint: IdentifierNode.create(target.constraint),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
throw new Error(`invalid on conflict target ${JSON.stringify(target)}`);
|
|
30
|
-
}
|