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