kysely 0.19.7 → 0.19.10

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 (60) hide show
  1. package/README.md +16 -10
  2. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -1
  3. package/dist/cjs/operation-node/create-type-node.d.ts +17 -0
  4. package/dist/cjs/operation-node/create-type-node.js +27 -0
  5. package/dist/cjs/operation-node/drop-type-node.d.ts +16 -0
  6. package/dist/cjs/operation-node/drop-type-node.js +25 -0
  7. package/dist/cjs/operation-node/operation-node-transformer.d.ts +9 -2
  8. package/dist/cjs/operation-node/operation-node-transformer.js +147 -122
  9. package/dist/cjs/operation-node/operation-node-visitor.d.ts +6 -0
  10. package/dist/cjs/operation-node/operation-node-visitor.js +3 -0
  11. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  12. package/dist/cjs/operation-node/select-modifier-node.d.ts +16 -0
  13. package/dist/cjs/operation-node/select-modifier-node.js +24 -0
  14. package/dist/cjs/operation-node/select-query-node.d.ts +5 -5
  15. package/dist/cjs/operation-node/select-query-node.js +11 -9
  16. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  17. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
  18. package/dist/cjs/query-builder/select-query-builder.d.ts +50 -6
  19. package/dist/cjs/query-builder/select-query-builder.js +68 -13
  20. package/dist/cjs/query-compiler/default-query-compiler.d.ts +6 -0
  21. package/dist/cjs/query-compiler/default-query-compiler.js +29 -7
  22. package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
  23. package/dist/cjs/schema/create-type-builder.d.ts +19 -0
  24. package/dist/cjs/schema/create-type-builder.js +29 -0
  25. package/dist/cjs/schema/drop-type-builder.d.ts +19 -0
  26. package/dist/cjs/schema/drop-type-builder.js +31 -0
  27. package/dist/cjs/schema/schema.d.ts +32 -0
  28. package/dist/cjs/schema/schema.js +46 -0
  29. package/dist/cjs/util/require-all-props.d.ts +43 -0
  30. package/dist/cjs/util/require-all-props.js +40 -0
  31. package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
  32. package/dist/esm/operation-node/create-type-node.d.ts +17 -0
  33. package/dist/esm/operation-node/create-type-node.js +25 -0
  34. package/dist/esm/operation-node/drop-type-node.d.ts +16 -0
  35. package/dist/esm/operation-node/drop-type-node.js +23 -0
  36. package/dist/esm/operation-node/operation-node-transformer.d.ts +9 -2
  37. package/dist/esm/operation-node/operation-node-transformer.js +147 -122
  38. package/dist/esm/operation-node/operation-node-visitor.d.ts +6 -0
  39. package/dist/esm/operation-node/operation-node-visitor.js +3 -0
  40. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  41. package/dist/esm/operation-node/select-modifier-node.d.ts +16 -0
  42. package/dist/esm/operation-node/select-modifier-node.js +22 -0
  43. package/dist/esm/operation-node/select-query-node.d.ts +5 -5
  44. package/dist/esm/operation-node/select-query-node.js +11 -9
  45. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  46. package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
  47. package/dist/esm/query-builder/select-query-builder.d.ts +50 -6
  48. package/dist/esm/query-builder/select-query-builder.js +68 -13
  49. package/dist/esm/query-compiler/default-query-compiler.d.ts +6 -0
  50. package/dist/esm/query-compiler/default-query-compiler.js +29 -7
  51. package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
  52. package/dist/esm/schema/create-type-builder.d.ts +19 -0
  53. package/dist/esm/schema/create-type-builder.js +26 -0
  54. package/dist/esm/schema/drop-type-builder.d.ts +19 -0
  55. package/dist/esm/schema/drop-type-builder.js +28 -0
  56. package/dist/esm/schema/schema.d.ts +32 -0
  57. package/dist/esm/schema/schema.js +46 -0
  58. package/dist/esm/util/require-all-props.d.ts +43 -0
  59. package/dist/esm/util/require-all-props.js +37 -0
  60. package/package.json +1 -1
@@ -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,16 @@ export class OperationNodeTransformer {
238
242
  onDuplicateKey: this.transformNode(node.onDuplicateKey),
239
243
  with: this.transformNode(node.with),
240
244
  ignore: node.ignore,
241
- };
245
+ });
242
246
  }
243
247
  transformValues(node) {
244
- return {
248
+ return requireAllProps({
245
249
  kind: 'ValuesNode',
246
250
  values: this.transformNodeList(node.values),
247
- };
251
+ });
248
252
  }
249
253
  transformDeleteQuery(node) {
250
- return {
254
+ return requireAllProps({
251
255
  kind: 'DeleteQueryNode',
252
256
  from: this.transformNode(node.from),
253
257
  joins: this.transformNodeList(node.joins),
@@ -256,16 +260,16 @@ export class OperationNodeTransformer {
256
260
  with: this.transformNode(node.with),
257
261
  orderBy: this.transformNode(node.orderBy),
258
262
  limit: this.transformNode(node.limit),
259
- };
263
+ });
260
264
  }
261
265
  transformReturning(node) {
262
- return {
266
+ return requireAllProps({
263
267
  kind: 'ReturningNode',
264
268
  selections: this.transformNodeList(node.selections),
265
- };
269
+ });
266
270
  }
267
271
  transformCreateTable(node) {
268
- return {
272
+ return requireAllProps({
269
273
  kind: 'CreateTableNode',
270
274
  table: this.transformNode(node.table),
271
275
  columns: this.transformNodeList(node.columns),
@@ -273,10 +277,10 @@ export class OperationNodeTransformer {
273
277
  temporary: node.temporary,
274
278
  ifNotExists: node.ifNotExists,
275
279
  onCommit: node.onCommit,
276
- };
280
+ });
277
281
  }
278
282
  transformColumnDefinition(node) {
279
- return {
283
+ return requireAllProps({
280
284
  kind: 'ColumnDefinitionNode',
281
285
  column: this.transformNode(node.column),
282
286
  dataType: this.transformNode(node.dataType),
@@ -289,48 +293,48 @@ export class OperationNodeTransformer {
289
293
  defaultTo: this.transformNode(node.defaultTo),
290
294
  check: this.transformNode(node.check),
291
295
  generated: this.transformNode(node.generated),
292
- };
296
+ });
293
297
  }
294
298
  transformAddColumn(node) {
295
- return {
299
+ return requireAllProps({
296
300
  kind: 'AddColumnNode',
297
301
  column: this.transformNode(node.column),
298
- };
302
+ });
299
303
  }
300
304
  transformDropTable(node) {
301
- return {
305
+ return requireAllProps({
302
306
  kind: 'DropTableNode',
303
307
  table: this.transformNode(node.table),
304
308
  ifExists: node.ifExists,
305
- };
309
+ });
306
310
  }
307
311
  transformOrderBy(node) {
308
- return {
312
+ return requireAllProps({
309
313
  kind: 'OrderByNode',
310
314
  items: this.transformNodeList(node.items),
311
- };
315
+ });
312
316
  }
313
317
  transformOrderByItem(node) {
314
- return {
318
+ return requireAllProps({
315
319
  kind: 'OrderByItemNode',
316
320
  orderBy: this.transformNode(node.orderBy),
317
321
  direction: this.transformNode(node.direction),
318
- };
322
+ });
319
323
  }
320
324
  transformGroupBy(node) {
321
- return {
325
+ return requireAllProps({
322
326
  kind: 'GroupByNode',
323
327
  items: this.transformNodeList(node.items),
324
- };
328
+ });
325
329
  }
326
330
  transformGroupByItem(node) {
327
- return {
331
+ return requireAllProps({
328
332
  kind: 'GroupByItemNode',
329
333
  groupBy: this.transformNode(node.groupBy),
330
- };
334
+ });
331
335
  }
332
336
  transformUpdateQuery(node) {
333
- return {
337
+ return requireAllProps({
334
338
  kind: 'UpdateQueryNode',
335
339
  table: this.transformNode(node.table),
336
340
  from: this.transformNode(node.from),
@@ -339,29 +343,29 @@ export class OperationNodeTransformer {
339
343
  updates: this.transformNodeList(node.updates),
340
344
  returning: this.transformNode(node.returning),
341
345
  with: this.transformNode(node.with),
342
- };
346
+ });
343
347
  }
344
348
  transformColumnUpdate(node) {
345
- return {
349
+ return requireAllProps({
346
350
  kind: 'ColumnUpdateNode',
347
351
  column: this.transformNode(node.column),
348
352
  value: this.transformNode(node.value),
349
- };
353
+ });
350
354
  }
351
355
  transformLimit(node) {
352
- return {
356
+ return requireAllProps({
353
357
  kind: 'LimitNode',
354
358
  limit: this.transformNode(node.limit),
355
- };
359
+ });
356
360
  }
357
361
  transformOffset(node) {
358
- return {
362
+ return requireAllProps({
359
363
  kind: 'OffsetNode',
360
364
  offset: this.transformNode(node.offset),
361
- };
365
+ });
362
366
  }
363
367
  transformOnConflict(node) {
364
- return {
368
+ return requireAllProps({
365
369
  kind: 'OnConflictNode',
366
370
  columns: this.transformNodeList(node.columns),
367
371
  constraint: this.transformNode(node.constraint),
@@ -370,128 +374,128 @@ export class OperationNodeTransformer {
370
374
  updates: this.transformNodeList(node.updates),
371
375
  updateWhere: this.transformNode(node.updateWhere),
372
376
  doNothing: node.doNothing,
373
- };
377
+ });
374
378
  }
375
379
  transformOnDuplicateKey(node) {
376
- return {
380
+ return requireAllProps({
377
381
  kind: 'OnDuplicateKeyNode',
378
382
  updates: this.transformNodeList(node.updates),
379
- };
383
+ });
380
384
  }
381
385
  transformCreateIndex(node) {
382
- return {
386
+ return requireAllProps({
383
387
  kind: 'CreateIndexNode',
384
388
  name: this.transformNode(node.name),
385
389
  table: this.transformNode(node.table),
386
390
  expression: this.transformNode(node.expression),
387
391
  unique: node.unique,
388
392
  using: this.transformNode(node.using),
389
- };
393
+ });
390
394
  }
391
395
  transformList(node) {
392
- return {
396
+ return requireAllProps({
393
397
  kind: 'ListNode',
394
398
  items: this.transformNodeList(node.items),
395
- };
399
+ });
396
400
  }
397
401
  transformDropIndex(node) {
398
- return {
402
+ return requireAllProps({
399
403
  kind: 'DropIndexNode',
400
404
  name: this.transformNode(node.name),
401
405
  table: this.transformNode(node.table),
402
406
  ifExists: node.ifExists,
403
- };
407
+ });
404
408
  }
405
409
  transformPrimaryKeyConstraint(node) {
406
- return {
410
+ return requireAllProps({
407
411
  kind: 'PrimaryKeyConstraintNode',
408
412
  columns: this.transformNodeList(node.columns),
409
413
  name: this.transformNode(node.name),
410
- };
414
+ });
411
415
  }
412
416
  transformUniqueConstraint(node) {
413
- return {
417
+ return requireAllProps({
414
418
  kind: 'UniqueConstraintNode',
415
419
  columns: this.transformNodeList(node.columns),
416
420
  name: this.transformNode(node.name),
417
- };
421
+ });
418
422
  }
419
423
  transformForeignKeyConstraint(node) {
420
- return {
424
+ return requireAllProps({
421
425
  kind: 'ForeignKeyConstraintNode',
422
426
  columns: this.transformNodeList(node.columns),
423
427
  references: this.transformNode(node.references),
424
428
  name: this.transformNode(node.name),
425
429
  onDelete: node.onDelete,
426
430
  onUpdate: node.onUpdate,
427
- };
431
+ });
428
432
  }
429
433
  transformUnion(node) {
430
- return {
434
+ return requireAllProps({
431
435
  kind: 'UnionNode',
432
436
  union: this.transformNode(node.union),
433
437
  all: node.all,
434
- };
438
+ });
435
439
  }
436
440
  transformReferences(node) {
437
- return {
441
+ return requireAllProps({
438
442
  kind: 'ReferencesNode',
439
443
  table: this.transformNode(node.table),
440
444
  columns: this.transformNodeList(node.columns),
441
445
  onDelete: node.onDelete,
442
446
  onUpdate: node.onUpdate,
443
- };
447
+ });
444
448
  }
445
449
  transformCheckConstraint(node) {
446
- return {
450
+ return requireAllProps({
447
451
  kind: 'CheckConstraintNode',
448
452
  expression: this.transformNode(node.expression),
449
453
  name: this.transformNode(node.name),
450
- };
454
+ });
451
455
  }
452
456
  transformWith(node) {
453
- return {
457
+ return requireAllProps({
454
458
  kind: 'WithNode',
455
459
  expressions: this.transformNodeList(node.expressions),
456
460
  recursive: node.recursive,
457
- };
461
+ });
458
462
  }
459
463
  transformCommonTableExpression(node) {
460
- return {
464
+ return requireAllProps({
461
465
  kind: 'CommonTableExpressionNode',
462
466
  name: this.transformNode(node.name),
463
467
  expression: this.transformNode(node.expression),
464
- };
468
+ });
465
469
  }
466
470
  transformCommonTableExpressionName(node) {
467
- return {
471
+ return requireAllProps({
468
472
  kind: 'CommonTableExpressionNameNode',
469
473
  table: this.transformNode(node.table),
470
474
  columns: this.transformNodeList(node.columns),
471
- };
475
+ });
472
476
  }
473
477
  transformHaving(node) {
474
- return {
478
+ return requireAllProps({
475
479
  kind: 'HavingNode',
476
480
  having: this.transformNode(node.having),
477
- };
481
+ });
478
482
  }
479
483
  transformCreateSchema(node) {
480
- return {
484
+ return requireAllProps({
481
485
  kind: 'CreateSchemaNode',
482
486
  schema: this.transformNode(node.schema),
483
487
  ifNotExists: node.ifNotExists,
484
- };
488
+ });
485
489
  }
486
490
  transformDropSchema(node) {
487
- return {
491
+ return requireAllProps({
488
492
  kind: 'DropSchemaNode',
489
493
  schema: this.transformNode(node.schema),
490
494
  ifExists: node.ifExists,
491
- };
495
+ });
492
496
  }
493
497
  transformAlterTable(node) {
494
- return {
498
+ return requireAllProps({
495
499
  kind: 'AlterTableNode',
496
500
  table: this.transformNode(node.table),
497
501
  renameTo: this.transformNode(node.renameTo),
@@ -503,23 +507,23 @@ export class OperationNodeTransformer {
503
507
  modifyColumn: this.transformNode(node.modifyColumn),
504
508
  addConstraint: this.transformNode(node.addConstraint),
505
509
  dropConstraint: this.transformNode(node.dropConstraint),
506
- };
510
+ });
507
511
  }
508
512
  transformDropColumn(node) {
509
- return {
513
+ return requireAllProps({
510
514
  kind: 'DropColumnNode',
511
515
  column: this.transformNode(node.column),
512
- };
516
+ });
513
517
  }
514
518
  transformRenameColumn(node) {
515
- return {
519
+ return requireAllProps({
516
520
  kind: 'RenameColumnNode',
517
521
  column: this.transformNode(node.column),
518
522
  renameTo: this.transformNode(node.renameTo),
519
- };
523
+ });
520
524
  }
521
525
  transformAlterColumn(node) {
522
- return {
526
+ return requireAllProps({
523
527
  kind: 'AlterColumnNode',
524
528
  column: this.transformNode(node.column),
525
529
  dataType: this.transformNode(node.dataType),
@@ -528,30 +532,30 @@ export class OperationNodeTransformer {
528
532
  dropDefault: node.dropDefault,
529
533
  setNotNull: node.setNotNull,
530
534
  dropNotNull: node.dropNotNull,
531
- };
535
+ });
532
536
  }
533
537
  transformModifyColumn(node) {
534
- return {
538
+ return requireAllProps({
535
539
  kind: 'ModifyColumnNode',
536
540
  column: this.transformNode(node.column),
537
- };
541
+ });
538
542
  }
539
543
  transformAddConstraint(node) {
540
- return {
544
+ return requireAllProps({
541
545
  kind: 'AddConstraintNode',
542
546
  constraint: this.transformNode(node.constraint),
543
- };
547
+ });
544
548
  }
545
549
  transformDropConstraint(node) {
546
- return {
550
+ return requireAllProps({
547
551
  kind: 'DropConstraintNode',
548
552
  constraintName: this.transformNode(node.constraintName),
549
553
  ifExists: node.ifExists,
550
554
  modifier: node.modifier,
551
- };
555
+ });
552
556
  }
553
557
  transformCreateView(node) {
554
- return {
558
+ return requireAllProps({
555
559
  kind: 'CreateViewNode',
556
560
  name: this.transformNode(node.name),
557
561
  temporary: node.temporary,
@@ -560,37 +564,58 @@ export class OperationNodeTransformer {
560
564
  materialized: node.materialized,
561
565
  columns: this.transformNodeList(node.columns),
562
566
  as: this.transformNode(node.as),
563
- };
567
+ });
564
568
  }
565
569
  transformDropView(node) {
566
- return {
570
+ return requireAllProps({
567
571
  kind: 'DropViewNode',
568
572
  name: this.transformNode(node.name),
569
573
  ifExists: node.ifExists,
570
574
  materialized: node.materialized,
571
- };
575
+ });
572
576
  }
573
577
  transformGenerated(node) {
574
- return {
578
+ return requireAllProps({
575
579
  kind: 'GeneratedNode',
576
580
  byDefault: node.byDefault,
577
581
  always: node.always,
578
582
  identity: node.identity,
579
583
  stored: node.stored,
580
584
  expression: this.transformNode(node.expression),
581
- };
585
+ });
582
586
  }
583
587
  transformDefaultValue(node) {
584
- return {
588
+ return requireAllProps({
585
589
  kind: 'DefaultValueNode',
586
590
  defaultValue: this.transformNode(node.defaultValue),
587
- };
591
+ });
588
592
  }
589
593
  transformOn(node) {
590
- return {
594
+ return requireAllProps({
591
595
  kind: 'OnNode',
592
596
  on: this.transformNode(node.on),
593
- };
597
+ });
598
+ }
599
+ transformSelectModifier(node) {
600
+ return requireAllProps({
601
+ kind: 'SelectModifierNode',
602
+ modifier: node.modifier,
603
+ rawModifier: this.transformNode(node.rawModifier),
604
+ });
605
+ }
606
+ transformCreateType(node) {
607
+ return requireAllProps({
608
+ kind: 'CreateTypeNode',
609
+ name: this.transformNode(node.name),
610
+ enum: this.transformNode(node.enum),
611
+ });
612
+ }
613
+ transformDropType(node) {
614
+ return requireAllProps({
615
+ kind: 'DropTypeNode',
616
+ name: this.transformNode(node.name),
617
+ ifExists: node.ifExists,
618
+ });
594
619
  }
595
620
  transformDataType(node) {
596
621
  // 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
+ }>;