kysely 0.19.8 → 0.19.11

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.
Files changed (106) hide show
  1. package/README.md +67 -13
  2. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +10 -0
  3. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -0
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +25 -0
  5. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +29 -0
  6. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +6 -2
  7. package/dist/cjs/dialect/postgres/postgres-driver.js +24 -2
  8. package/dist/cjs/dialect/sqlite/sqlite-driver.js +3 -0
  9. package/dist/cjs/driver/database-connection.d.ts +1 -0
  10. package/dist/cjs/driver/dummy-driver.js +3 -0
  11. package/dist/cjs/index.d.ts +4 -0
  12. package/dist/cjs/index.js +4 -0
  13. package/dist/cjs/operation-node/create-type-node.d.ts +17 -0
  14. package/dist/cjs/operation-node/create-type-node.js +27 -0
  15. package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
  16. package/dist/cjs/operation-node/drop-type-node.d.ts +16 -0
  17. package/dist/cjs/operation-node/drop-type-node.js +25 -0
  18. package/dist/cjs/operation-node/insert-query-node.d.ts +2 -1
  19. package/dist/cjs/operation-node/insert-query-node.js +2 -1
  20. package/dist/cjs/operation-node/operation-node-transformer.d.ts +9 -2
  21. package/dist/cjs/operation-node/operation-node-transformer.js +148 -122
  22. package/dist/cjs/operation-node/operation-node-visitor.d.ts +6 -0
  23. package/dist/cjs/operation-node/operation-node-visitor.js +3 -0
  24. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  25. package/dist/cjs/operation-node/select-modifier-node.d.ts +16 -0
  26. package/dist/cjs/operation-node/select-modifier-node.js +24 -0
  27. package/dist/cjs/operation-node/select-query-node.d.ts +5 -5
  28. package/dist/cjs/operation-node/select-query-node.js +11 -9
  29. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  30. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
  31. package/dist/cjs/query-builder/insert-query-builder.d.ts +1 -1
  32. package/dist/cjs/query-builder/select-query-builder.d.ts +77 -6
  33. package/dist/cjs/query-builder/select-query-builder.js +101 -14
  34. package/dist/cjs/query-compiler/default-query-compiler.d.ts +6 -0
  35. package/dist/cjs/query-compiler/default-query-compiler.js +30 -8
  36. package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
  37. package/dist/cjs/query-creator.d.ts +27 -0
  38. package/dist/cjs/query-creator.js +33 -0
  39. package/dist/cjs/query-executor/query-executor-base.d.ts +6 -0
  40. package/dist/cjs/query-executor/query-executor-base.js +19 -0
  41. package/dist/cjs/query-executor/query-executor.d.ts +11 -0
  42. package/dist/cjs/schema/create-table-builder.d.ts +6 -6
  43. package/dist/cjs/schema/create-table-builder.js +6 -6
  44. package/dist/cjs/schema/create-type-builder.d.ts +28 -0
  45. package/dist/cjs/schema/create-type-builder.js +38 -0
  46. package/dist/cjs/schema/drop-type-builder.d.ts +19 -0
  47. package/dist/cjs/schema/drop-type-builder.js +31 -0
  48. package/dist/cjs/schema/schema.d.ts +32 -0
  49. package/dist/cjs/schema/schema.js +46 -0
  50. package/dist/cjs/util/deferred.d.ts +7 -0
  51. package/dist/cjs/util/deferred.js +28 -0
  52. package/dist/cjs/util/require-all-props.d.ts +43 -0
  53. package/dist/cjs/util/require-all-props.js +40 -0
  54. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +10 -0
  55. package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -0
  56. package/dist/esm/dialect/mysql/mysql-driver.js +25 -0
  57. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +29 -0
  58. package/dist/esm/dialect/postgres/postgres-driver.d.ts +6 -2
  59. package/dist/esm/dialect/postgres/postgres-driver.js +24 -2
  60. package/dist/esm/dialect/sqlite/sqlite-driver.js +3 -0
  61. package/dist/esm/driver/database-connection.d.ts +1 -0
  62. package/dist/esm/driver/dummy-driver.js +3 -0
  63. package/dist/esm/index.d.ts +4 -0
  64. package/dist/esm/index.js +4 -0
  65. package/dist/esm/operation-node/create-type-node.d.ts +17 -0
  66. package/dist/esm/operation-node/create-type-node.js +25 -0
  67. package/dist/esm/operation-node/data-type-node.d.ts +1 -1
  68. package/dist/esm/operation-node/drop-type-node.d.ts +16 -0
  69. package/dist/esm/operation-node/drop-type-node.js +23 -0
  70. package/dist/esm/operation-node/insert-query-node.d.ts +2 -1
  71. package/dist/esm/operation-node/insert-query-node.js +2 -1
  72. package/dist/esm/operation-node/operation-node-transformer.d.ts +9 -2
  73. package/dist/esm/operation-node/operation-node-transformer.js +148 -122
  74. package/dist/esm/operation-node/operation-node-visitor.d.ts +6 -0
  75. package/dist/esm/operation-node/operation-node-visitor.js +3 -0
  76. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  77. package/dist/esm/operation-node/select-modifier-node.d.ts +16 -0
  78. package/dist/esm/operation-node/select-modifier-node.js +22 -0
  79. package/dist/esm/operation-node/select-query-node.d.ts +5 -5
  80. package/dist/esm/operation-node/select-query-node.js +11 -9
  81. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  82. package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
  83. package/dist/esm/query-builder/insert-query-builder.d.ts +1 -1
  84. package/dist/esm/query-builder/select-query-builder.d.ts +77 -6
  85. package/dist/esm/query-builder/select-query-builder.js +101 -14
  86. package/dist/esm/query-compiler/default-query-compiler.d.ts +6 -0
  87. package/dist/esm/query-compiler/default-query-compiler.js +30 -8
  88. package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
  89. package/dist/esm/query-creator.d.ts +27 -0
  90. package/dist/esm/query-creator.js +33 -0
  91. package/dist/esm/query-executor/query-executor-base.d.ts +6 -0
  92. package/dist/esm/query-executor/query-executor-base.js +19 -0
  93. package/dist/esm/query-executor/query-executor.d.ts +11 -0
  94. package/dist/esm/schema/create-table-builder.d.ts +6 -6
  95. package/dist/esm/schema/create-table-builder.js +6 -6
  96. package/dist/esm/schema/create-type-builder.d.ts +28 -0
  97. package/dist/esm/schema/create-type-builder.js +35 -0
  98. package/dist/esm/schema/drop-type-builder.d.ts +19 -0
  99. package/dist/esm/schema/drop-type-builder.js +28 -0
  100. package/dist/esm/schema/schema.d.ts +32 -0
  101. package/dist/esm/schema/schema.js +46 -0
  102. package/dist/esm/util/deferred.d.ts +7 -0
  103. package/dist/esm/util/deferred.js +25 -0
  104. package/dist/esm/util/require-all-props.d.ts +43 -0
  105. package/dist/esm/util/require-all-props.js +37 -0
  106. package/package.json +5 -2
@@ -1,5 +1,6 @@
1
1
  /// <reference types="./operation-node-transformer.d.ts" />
2
2
  import { freeze } from '../util/object-utils.js';
3
+ import { requireAllProps } from '../util/require-all-props.js';
3
4
  /**
4
5
  * Transforms an operation node tree into another one.
5
6
  *
@@ -98,6 +99,9 @@ export class OperationNodeTransformer {
98
99
  DefaultValueNode: this.transformDefaultValue.bind(this),
99
100
  OnNode: this.transformOn.bind(this),
100
101
  ValuesNode: this.transformValues.bind(this),
102
+ SelectModifierNode: this.transformSelectModifier.bind(this),
103
+ CreateTypeNode: this.transformCreateType.bind(this),
104
+ DropTypeNode: this.transformDropType.bind(this),
101
105
  });
102
106
  transformNode = (node) => {
103
107
  if (!node) {
@@ -115,120 +119,120 @@ export class OperationNodeTransformer {
115
119
  return freeze(list.map(this.transformNode));
116
120
  }
117
121
  transformSelectQuery(node) {
118
- return {
122
+ return requireAllProps({
119
123
  kind: 'SelectQueryNode',
120
124
  from: this.transformNode(node.from),
121
125
  selections: this.transformNodeList(node.selections),
122
126
  distinctOnSelections: this.transformNodeList(node.distinctOnSelections),
123
- distinct: node.distinct,
124
127
  joins: this.transformNodeList(node.joins),
125
128
  groupBy: this.transformNode(node.groupBy),
126
129
  orderBy: this.transformNode(node.orderBy),
127
130
  where: this.transformNode(node.where),
128
- modifiers: node.modifiers,
131
+ frontModifiers: this.transformNodeList(node.frontModifiers),
132
+ endModifiers: this.transformNodeList(node.endModifiers),
129
133
  limit: this.transformNode(node.limit),
130
134
  offset: this.transformNode(node.offset),
131
135
  with: this.transformNode(node.with),
132
136
  having: this.transformNode(node.having),
133
137
  union: this.transformNodeList(node.union),
134
- };
138
+ });
135
139
  }
136
140
  transformSelection(node) {
137
- return {
141
+ return requireAllProps({
138
142
  kind: 'SelectionNode',
139
143
  selection: this.transformNode(node.selection),
140
- };
144
+ });
141
145
  }
142
146
  transformColumn(node) {
143
- return {
147
+ return requireAllProps({
144
148
  kind: 'ColumnNode',
145
149
  column: this.transformNode(node.column),
146
- };
150
+ });
147
151
  }
148
152
  transformAlias(node) {
149
- return {
153
+ return requireAllProps({
150
154
  kind: 'AliasNode',
151
155
  node: this.transformNode(node.node),
152
156
  alias: this.transformNode(node.alias),
153
- };
157
+ });
154
158
  }
155
159
  transformTable(node) {
156
- return {
160
+ return requireAllProps({
157
161
  kind: 'TableNode',
158
162
  schema: this.transformNode(node.schema),
159
163
  table: this.transformNode(node.table),
160
- };
164
+ });
161
165
  }
162
166
  transformFrom(node) {
163
- return {
167
+ return requireAllProps({
164
168
  kind: 'FromNode',
165
169
  froms: this.transformNodeList(node.froms),
166
- };
170
+ });
167
171
  }
168
172
  transformReference(node) {
169
- return {
173
+ return requireAllProps({
170
174
  kind: 'ReferenceNode',
171
175
  table: this.transformNode(node.table),
172
176
  column: this.transformNode(node.column),
173
- };
177
+ });
174
178
  }
175
179
  transformFilter(node) {
176
- return {
180
+ return requireAllProps({
177
181
  kind: 'FilterNode',
178
182
  left: this.transformNode(node.left),
179
183
  op: this.transformNode(node.op),
180
184
  right: this.transformNode(node.right),
181
- };
185
+ });
182
186
  }
183
187
  transformAnd(node) {
184
- return {
188
+ return requireAllProps({
185
189
  kind: 'AndNode',
186
190
  left: this.transformNode(node.left),
187
191
  right: this.transformNode(node.right),
188
- };
192
+ });
189
193
  }
190
194
  transformOr(node) {
191
- return {
195
+ return requireAllProps({
192
196
  kind: 'OrNode',
193
197
  left: this.transformNode(node.left),
194
198
  right: this.transformNode(node.right),
195
- };
199
+ });
196
200
  }
197
201
  transformValueList(node) {
198
- return {
202
+ return requireAllProps({
199
203
  kind: 'ValueListNode',
200
204
  values: this.transformNodeList(node.values),
201
- };
205
+ });
202
206
  }
203
207
  transformParens(node) {
204
- return {
208
+ return requireAllProps({
205
209
  kind: 'ParensNode',
206
210
  node: this.transformNode(node.node),
207
- };
211
+ });
208
212
  }
209
213
  transformJoin(node) {
210
- return {
214
+ return requireAllProps({
211
215
  kind: 'JoinNode',
212
216
  joinType: node.joinType,
213
217
  table: this.transformNode(node.table),
214
218
  on: this.transformNode(node.on),
215
- };
219
+ });
216
220
  }
217
221
  transformRaw(node) {
218
- return {
222
+ return requireAllProps({
219
223
  kind: 'RawNode',
220
224
  sqlFragments: freeze([...node.sqlFragments]),
221
225
  parameters: this.transformNodeList(node.parameters),
222
- };
226
+ });
223
227
  }
224
228
  transformWhere(node) {
225
- return {
229
+ return requireAllProps({
226
230
  kind: 'WhereNode',
227
231
  where: this.transformNode(node.where),
228
- };
232
+ });
229
233
  }
230
234
  transformInsertQuery(node) {
231
- return {
235
+ return requireAllProps({
232
236
  kind: 'InsertQueryNode',
233
237
  into: this.transformNode(node.into),
234
238
  columns: this.transformNodeList(node.columns),
@@ -238,16 +242,17 @@ export class OperationNodeTransformer {
238
242
  onDuplicateKey: this.transformNode(node.onDuplicateKey),
239
243
  with: this.transformNode(node.with),
240
244
  ignore: node.ignore,
241
- };
245
+ replace: node.replace,
246
+ });
242
247
  }
243
248
  transformValues(node) {
244
- return {
249
+ return requireAllProps({
245
250
  kind: 'ValuesNode',
246
251
  values: this.transformNodeList(node.values),
247
- };
252
+ });
248
253
  }
249
254
  transformDeleteQuery(node) {
250
- return {
255
+ return requireAllProps({
251
256
  kind: 'DeleteQueryNode',
252
257
  from: this.transformNode(node.from),
253
258
  joins: this.transformNodeList(node.joins),
@@ -256,16 +261,16 @@ export class OperationNodeTransformer {
256
261
  with: this.transformNode(node.with),
257
262
  orderBy: this.transformNode(node.orderBy),
258
263
  limit: this.transformNode(node.limit),
259
- };
264
+ });
260
265
  }
261
266
  transformReturning(node) {
262
- return {
267
+ return requireAllProps({
263
268
  kind: 'ReturningNode',
264
269
  selections: this.transformNodeList(node.selections),
265
- };
270
+ });
266
271
  }
267
272
  transformCreateTable(node) {
268
- return {
273
+ return requireAllProps({
269
274
  kind: 'CreateTableNode',
270
275
  table: this.transformNode(node.table),
271
276
  columns: this.transformNodeList(node.columns),
@@ -273,10 +278,10 @@ export class OperationNodeTransformer {
273
278
  temporary: node.temporary,
274
279
  ifNotExists: node.ifNotExists,
275
280
  onCommit: node.onCommit,
276
- };
281
+ });
277
282
  }
278
283
  transformColumnDefinition(node) {
279
- return {
284
+ return requireAllProps({
280
285
  kind: 'ColumnDefinitionNode',
281
286
  column: this.transformNode(node.column),
282
287
  dataType: this.transformNode(node.dataType),
@@ -289,48 +294,48 @@ export class OperationNodeTransformer {
289
294
  defaultTo: this.transformNode(node.defaultTo),
290
295
  check: this.transformNode(node.check),
291
296
  generated: this.transformNode(node.generated),
292
- };
297
+ });
293
298
  }
294
299
  transformAddColumn(node) {
295
- return {
300
+ return requireAllProps({
296
301
  kind: 'AddColumnNode',
297
302
  column: this.transformNode(node.column),
298
- };
303
+ });
299
304
  }
300
305
  transformDropTable(node) {
301
- return {
306
+ return requireAllProps({
302
307
  kind: 'DropTableNode',
303
308
  table: this.transformNode(node.table),
304
309
  ifExists: node.ifExists,
305
- };
310
+ });
306
311
  }
307
312
  transformOrderBy(node) {
308
- return {
313
+ return requireAllProps({
309
314
  kind: 'OrderByNode',
310
315
  items: this.transformNodeList(node.items),
311
- };
316
+ });
312
317
  }
313
318
  transformOrderByItem(node) {
314
- return {
319
+ return requireAllProps({
315
320
  kind: 'OrderByItemNode',
316
321
  orderBy: this.transformNode(node.orderBy),
317
322
  direction: this.transformNode(node.direction),
318
- };
323
+ });
319
324
  }
320
325
  transformGroupBy(node) {
321
- return {
326
+ return requireAllProps({
322
327
  kind: 'GroupByNode',
323
328
  items: this.transformNodeList(node.items),
324
- };
329
+ });
325
330
  }
326
331
  transformGroupByItem(node) {
327
- return {
332
+ return requireAllProps({
328
333
  kind: 'GroupByItemNode',
329
334
  groupBy: this.transformNode(node.groupBy),
330
- };
335
+ });
331
336
  }
332
337
  transformUpdateQuery(node) {
333
- return {
338
+ return requireAllProps({
334
339
  kind: 'UpdateQueryNode',
335
340
  table: this.transformNode(node.table),
336
341
  from: this.transformNode(node.from),
@@ -339,29 +344,29 @@ export class OperationNodeTransformer {
339
344
  updates: this.transformNodeList(node.updates),
340
345
  returning: this.transformNode(node.returning),
341
346
  with: this.transformNode(node.with),
342
- };
347
+ });
343
348
  }
344
349
  transformColumnUpdate(node) {
345
- return {
350
+ return requireAllProps({
346
351
  kind: 'ColumnUpdateNode',
347
352
  column: this.transformNode(node.column),
348
353
  value: this.transformNode(node.value),
349
- };
354
+ });
350
355
  }
351
356
  transformLimit(node) {
352
- return {
357
+ return requireAllProps({
353
358
  kind: 'LimitNode',
354
359
  limit: this.transformNode(node.limit),
355
- };
360
+ });
356
361
  }
357
362
  transformOffset(node) {
358
- return {
363
+ return requireAllProps({
359
364
  kind: 'OffsetNode',
360
365
  offset: this.transformNode(node.offset),
361
- };
366
+ });
362
367
  }
363
368
  transformOnConflict(node) {
364
- return {
369
+ return requireAllProps({
365
370
  kind: 'OnConflictNode',
366
371
  columns: this.transformNodeList(node.columns),
367
372
  constraint: this.transformNode(node.constraint),
@@ -370,128 +375,128 @@ export class OperationNodeTransformer {
370
375
  updates: this.transformNodeList(node.updates),
371
376
  updateWhere: this.transformNode(node.updateWhere),
372
377
  doNothing: node.doNothing,
373
- };
378
+ });
374
379
  }
375
380
  transformOnDuplicateKey(node) {
376
- return {
381
+ return requireAllProps({
377
382
  kind: 'OnDuplicateKeyNode',
378
383
  updates: this.transformNodeList(node.updates),
379
- };
384
+ });
380
385
  }
381
386
  transformCreateIndex(node) {
382
- return {
387
+ return requireAllProps({
383
388
  kind: 'CreateIndexNode',
384
389
  name: this.transformNode(node.name),
385
390
  table: this.transformNode(node.table),
386
391
  expression: this.transformNode(node.expression),
387
392
  unique: node.unique,
388
393
  using: this.transformNode(node.using),
389
- };
394
+ });
390
395
  }
391
396
  transformList(node) {
392
- return {
397
+ return requireAllProps({
393
398
  kind: 'ListNode',
394
399
  items: this.transformNodeList(node.items),
395
- };
400
+ });
396
401
  }
397
402
  transformDropIndex(node) {
398
- return {
403
+ return requireAllProps({
399
404
  kind: 'DropIndexNode',
400
405
  name: this.transformNode(node.name),
401
406
  table: this.transformNode(node.table),
402
407
  ifExists: node.ifExists,
403
- };
408
+ });
404
409
  }
405
410
  transformPrimaryKeyConstraint(node) {
406
- return {
411
+ return requireAllProps({
407
412
  kind: 'PrimaryKeyConstraintNode',
408
413
  columns: this.transformNodeList(node.columns),
409
414
  name: this.transformNode(node.name),
410
- };
415
+ });
411
416
  }
412
417
  transformUniqueConstraint(node) {
413
- return {
418
+ return requireAllProps({
414
419
  kind: 'UniqueConstraintNode',
415
420
  columns: this.transformNodeList(node.columns),
416
421
  name: this.transformNode(node.name),
417
- };
422
+ });
418
423
  }
419
424
  transformForeignKeyConstraint(node) {
420
- return {
425
+ return requireAllProps({
421
426
  kind: 'ForeignKeyConstraintNode',
422
427
  columns: this.transformNodeList(node.columns),
423
428
  references: this.transformNode(node.references),
424
429
  name: this.transformNode(node.name),
425
430
  onDelete: node.onDelete,
426
431
  onUpdate: node.onUpdate,
427
- };
432
+ });
428
433
  }
429
434
  transformUnion(node) {
430
- return {
435
+ return requireAllProps({
431
436
  kind: 'UnionNode',
432
437
  union: this.transformNode(node.union),
433
438
  all: node.all,
434
- };
439
+ });
435
440
  }
436
441
  transformReferences(node) {
437
- return {
442
+ return requireAllProps({
438
443
  kind: 'ReferencesNode',
439
444
  table: this.transformNode(node.table),
440
445
  columns: this.transformNodeList(node.columns),
441
446
  onDelete: node.onDelete,
442
447
  onUpdate: node.onUpdate,
443
- };
448
+ });
444
449
  }
445
450
  transformCheckConstraint(node) {
446
- return {
451
+ return requireAllProps({
447
452
  kind: 'CheckConstraintNode',
448
453
  expression: this.transformNode(node.expression),
449
454
  name: this.transformNode(node.name),
450
- };
455
+ });
451
456
  }
452
457
  transformWith(node) {
453
- return {
458
+ return requireAllProps({
454
459
  kind: 'WithNode',
455
460
  expressions: this.transformNodeList(node.expressions),
456
461
  recursive: node.recursive,
457
- };
462
+ });
458
463
  }
459
464
  transformCommonTableExpression(node) {
460
- return {
465
+ return requireAllProps({
461
466
  kind: 'CommonTableExpressionNode',
462
467
  name: this.transformNode(node.name),
463
468
  expression: this.transformNode(node.expression),
464
- };
469
+ });
465
470
  }
466
471
  transformCommonTableExpressionName(node) {
467
- return {
472
+ return requireAllProps({
468
473
  kind: 'CommonTableExpressionNameNode',
469
474
  table: this.transformNode(node.table),
470
475
  columns: this.transformNodeList(node.columns),
471
- };
476
+ });
472
477
  }
473
478
  transformHaving(node) {
474
- return {
479
+ return requireAllProps({
475
480
  kind: 'HavingNode',
476
481
  having: this.transformNode(node.having),
477
- };
482
+ });
478
483
  }
479
484
  transformCreateSchema(node) {
480
- return {
485
+ return requireAllProps({
481
486
  kind: 'CreateSchemaNode',
482
487
  schema: this.transformNode(node.schema),
483
488
  ifNotExists: node.ifNotExists,
484
- };
489
+ });
485
490
  }
486
491
  transformDropSchema(node) {
487
- return {
492
+ return requireAllProps({
488
493
  kind: 'DropSchemaNode',
489
494
  schema: this.transformNode(node.schema),
490
495
  ifExists: node.ifExists,
491
- };
496
+ });
492
497
  }
493
498
  transformAlterTable(node) {
494
- return {
499
+ return requireAllProps({
495
500
  kind: 'AlterTableNode',
496
501
  table: this.transformNode(node.table),
497
502
  renameTo: this.transformNode(node.renameTo),
@@ -503,23 +508,23 @@ export class OperationNodeTransformer {
503
508
  modifyColumn: this.transformNode(node.modifyColumn),
504
509
  addConstraint: this.transformNode(node.addConstraint),
505
510
  dropConstraint: this.transformNode(node.dropConstraint),
506
- };
511
+ });
507
512
  }
508
513
  transformDropColumn(node) {
509
- return {
514
+ return requireAllProps({
510
515
  kind: 'DropColumnNode',
511
516
  column: this.transformNode(node.column),
512
- };
517
+ });
513
518
  }
514
519
  transformRenameColumn(node) {
515
- return {
520
+ return requireAllProps({
516
521
  kind: 'RenameColumnNode',
517
522
  column: this.transformNode(node.column),
518
523
  renameTo: this.transformNode(node.renameTo),
519
- };
524
+ });
520
525
  }
521
526
  transformAlterColumn(node) {
522
- return {
527
+ return requireAllProps({
523
528
  kind: 'AlterColumnNode',
524
529
  column: this.transformNode(node.column),
525
530
  dataType: this.transformNode(node.dataType),
@@ -528,30 +533,30 @@ export class OperationNodeTransformer {
528
533
  dropDefault: node.dropDefault,
529
534
  setNotNull: node.setNotNull,
530
535
  dropNotNull: node.dropNotNull,
531
- };
536
+ });
532
537
  }
533
538
  transformModifyColumn(node) {
534
- return {
539
+ return requireAllProps({
535
540
  kind: 'ModifyColumnNode',
536
541
  column: this.transformNode(node.column),
537
- };
542
+ });
538
543
  }
539
544
  transformAddConstraint(node) {
540
- return {
545
+ return requireAllProps({
541
546
  kind: 'AddConstraintNode',
542
547
  constraint: this.transformNode(node.constraint),
543
- };
548
+ });
544
549
  }
545
550
  transformDropConstraint(node) {
546
- return {
551
+ return requireAllProps({
547
552
  kind: 'DropConstraintNode',
548
553
  constraintName: this.transformNode(node.constraintName),
549
554
  ifExists: node.ifExists,
550
555
  modifier: node.modifier,
551
- };
556
+ });
552
557
  }
553
558
  transformCreateView(node) {
554
- return {
559
+ return requireAllProps({
555
560
  kind: 'CreateViewNode',
556
561
  name: this.transformNode(node.name),
557
562
  temporary: node.temporary,
@@ -560,37 +565,58 @@ export class OperationNodeTransformer {
560
565
  materialized: node.materialized,
561
566
  columns: this.transformNodeList(node.columns),
562
567
  as: this.transformNode(node.as),
563
- };
568
+ });
564
569
  }
565
570
  transformDropView(node) {
566
- return {
571
+ return requireAllProps({
567
572
  kind: 'DropViewNode',
568
573
  name: this.transformNode(node.name),
569
574
  ifExists: node.ifExists,
570
575
  materialized: node.materialized,
571
- };
576
+ });
572
577
  }
573
578
  transformGenerated(node) {
574
- return {
579
+ return requireAllProps({
575
580
  kind: 'GeneratedNode',
576
581
  byDefault: node.byDefault,
577
582
  always: node.always,
578
583
  identity: node.identity,
579
584
  stored: node.stored,
580
585
  expression: this.transformNode(node.expression),
581
- };
586
+ });
582
587
  }
583
588
  transformDefaultValue(node) {
584
- return {
589
+ return requireAllProps({
585
590
  kind: 'DefaultValueNode',
586
591
  defaultValue: this.transformNode(node.defaultValue),
587
- };
592
+ });
588
593
  }
589
594
  transformOn(node) {
590
- return {
595
+ return requireAllProps({
591
596
  kind: 'OnNode',
592
597
  on: this.transformNode(node.on),
593
- };
598
+ });
599
+ }
600
+ transformSelectModifier(node) {
601
+ return requireAllProps({
602
+ kind: 'SelectModifierNode',
603
+ modifier: node.modifier,
604
+ rawModifier: this.transformNode(node.rawModifier),
605
+ });
606
+ }
607
+ transformCreateType(node) {
608
+ return requireAllProps({
609
+ kind: 'CreateTypeNode',
610
+ name: this.transformNode(node.name),
611
+ enum: this.transformNode(node.enum),
612
+ });
613
+ }
614
+ transformDropType(node) {
615
+ return requireAllProps({
616
+ kind: 'DropTypeNode',
617
+ name: this.transformNode(node.name),
618
+ ifExists: node.ifExists,
619
+ });
594
620
  }
595
621
  transformDataType(node) {
596
622
  // An Object.freezed leaf node. No need to clone.
@@ -65,6 +65,9 @@ import { GeneratedNode } from './generated-node.js';
65
65
  import { DefaultValueNode } from './default-value-node.js';
66
66
  import { OnNode } from './on-node.js';
67
67
  import { ValuesNode } from './values-node.js';
68
+ import { SelectModifierNode } from './select-modifier-node.js';
69
+ import { CreateTypeNode } from './create-type-node.js';
70
+ import { DropTypeNode } from './drop-type-node.js';
68
71
  export declare abstract class OperationNodeVisitor {
69
72
  #private;
70
73
  protected readonly nodeStack: OperationNode[];
@@ -136,4 +139,7 @@ export declare abstract class OperationNodeVisitor {
136
139
  protected abstract visitDefaultValue(node: DefaultValueNode): void;
137
140
  protected abstract visitOn(node: OnNode): void;
138
141
  protected abstract visitValues(node: ValuesNode): void;
142
+ protected abstract visitSelectModifier(node: SelectModifierNode): void;
143
+ protected abstract visitCreateType(node: CreateTypeNode): void;
144
+ protected abstract visitDropType(node: DropTypeNode): void;
139
145
  }
@@ -72,6 +72,9 @@ export class OperationNodeVisitor {
72
72
  DefaultValueNode: this.visitDefaultValue.bind(this),
73
73
  OnNode: this.visitOn.bind(this),
74
74
  ValuesNode: this.visitValues.bind(this),
75
+ SelectModifierNode: this.visitSelectModifier.bind(this),
76
+ CreateTypeNode: this.visitCreateType.bind(this),
77
+ DropTypeNode: this.visitDropType.bind(this),
75
78
  });
76
79
  visitNode = (node) => {
77
80
  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' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode';
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' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode' | 'SelectModifierNode' | 'CreateTypeNode' | 'DropTypeNode';
2
2
  export interface OperationNode {
3
3
  readonly kind: OperationNodeKind;
4
4
  }
@@ -0,0 +1,16 @@
1
+ import { OperationNode } from './operation-node.js';
2
+ import { RawNode } from './raw-node.js';
3
+ export declare type SelectModifier = 'ForUpdate' | 'ForNoKeyUpdate' | 'ForShare' | 'ForKeyShare' | 'NoWait' | 'SkipLocked' | 'Distinct';
4
+ export interface SelectModifierNode extends OperationNode {
5
+ readonly kind: 'SelectModifierNode';
6
+ readonly modifier?: SelectModifier;
7
+ readonly rawModifier?: RawNode;
8
+ }
9
+ /**
10
+ * @internal
11
+ */
12
+ export declare const SelectModifierNode: Readonly<{
13
+ is(node: OperationNode): node is SelectModifierNode;
14
+ create(modifier: SelectModifier): SelectModifierNode;
15
+ createWithRaw(modifier: RawNode): SelectModifierNode;
16
+ }>;