kysely 0.19.8 → 0.19.9

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 (32) hide show
  1. package/README.md +11 -6
  2. package/dist/cjs/operation-node/operation-node-transformer.d.ts +5 -2
  3. package/dist/cjs/operation-node/operation-node-transformer.js +131 -122
  4. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  5. package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
  6. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  7. package/dist/cjs/operation-node/select-modifier-node.d.ts +16 -0
  8. package/dist/cjs/operation-node/select-modifier-node.js +24 -0
  9. package/dist/cjs/operation-node/select-query-node.d.ts +5 -5
  10. package/dist/cjs/operation-node/select-query-node.js +11 -9
  11. package/dist/cjs/query-builder/select-query-builder.d.ts +50 -6
  12. package/dist/cjs/query-builder/select-query-builder.js +68 -13
  13. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
  14. package/dist/cjs/query-compiler/default-query-compiler.js +14 -7
  15. package/dist/cjs/util/require-all-props.d.ts +43 -0
  16. package/dist/cjs/util/require-all-props.js +40 -0
  17. package/dist/esm/operation-node/operation-node-transformer.d.ts +5 -2
  18. package/dist/esm/operation-node/operation-node-transformer.js +131 -122
  19. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  20. package/dist/esm/operation-node/operation-node-visitor.js +1 -0
  21. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  22. package/dist/esm/operation-node/select-modifier-node.d.ts +16 -0
  23. package/dist/esm/operation-node/select-modifier-node.js +22 -0
  24. package/dist/esm/operation-node/select-query-node.d.ts +5 -5
  25. package/dist/esm/operation-node/select-query-node.js +11 -9
  26. package/dist/esm/query-builder/select-query-builder.d.ts +50 -6
  27. package/dist/esm/query-builder/select-query-builder.js +68 -13
  28. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
  29. package/dist/esm/query-compiler/default-query-compiler.js +14 -7
  30. package/dist/esm/util/require-all-props.d.ts +43 -0
  31. package/dist/esm/util/require-all-props.js +37 -0
  32. package/package.json +1 -1
package/README.md CHANGED
@@ -5,21 +5,20 @@
5
5
 
6
6
  # [Kysely](https://koskimas.github.io/kysely/index.html)
7
7
 
8
- A type-safe and autocompletion-friendly typescript SQL query builder. Inspired by [knex](http://knexjs.org/).
9
- Mainly developed for [node.js](https://nodejs.org/en/) but also runs on [deno](https://deno.land/) and
10
- in the browser.
8
+ Kysely (pronounce “Key-Seh-Lee”) is a type-safe and autocompletion-friendly typescript SQL query builder. Inspired by
9
+ [knex](http://knexjs.org/). Mainly developed for [node.js](https://nodejs.org/en/) but also runs on [deno](https://deno.land/)
10
+ and in the browser.
11
11
 
12
12
  ![](https://github.com/koskimas/kysely/blob/master/assets/demo.gif)
13
13
 
14
14
  Kysely makes sure you only refer to tables and columns that are visible to the part of the query
15
- you are writing. The result type only has the selected columns with correct types and aliases. As an
15
+ you're writing. The result type only has the selected columns with correct types and aliases. As an
16
16
  added bonus you get autocompletion for all that stuff.
17
17
 
18
18
  As you can see in the gif above, through the pure magic of modern typescript, Kysely is even able to parse
19
19
  the alias given to `pet.name` and add the `pet_name` column to the result row type. Kysely is able to infer
20
20
  column names, aliases and types from selected subqueries, joined subqueries, `with` statements and pretty
21
- much anything you can think of. Typescript is always there for you offering completions and making sure
22
- you build a valid query.
21
+ much anything you can think of.
23
22
 
24
23
  Of course there are cases where things cannot be typed at compile time, and Kysely offers escape
25
24
  hatches for these situations. See the [sql template tag](https://koskimas.github.io/kysely/modules.html#sql)
@@ -34,6 +33,7 @@ You can find a more thorough introduction [here](https://www.jakso.me/blog/kysel
34
33
 
35
34
  - [Installation](#installation)
36
35
  - [Minimal example](#minimal-example)
36
+ - [Generating types](#generating-types)
37
37
  - [Query examples](#query-examples)
38
38
  - [Recipes](https://github.com/koskimas/kysely/tree/master/recipes)
39
39
  - [Migrations](#migrations)
@@ -166,6 +166,11 @@ type InsertablePerson = Insertable<PersonTable>
166
166
  type UpdateablePerson = Updateable<PersonTable>
167
167
  ```
168
168
 
169
+ # Generating types
170
+
171
+ If you want to generate the table types automatically from the database schema please
172
+ check out [this awesome project](https://github.com/RobinBlomberg/kysely-codegen).
173
+
169
174
  # Query examples
170
175
 
171
176
  ## Select queries
@@ -65,6 +65,7 @@ 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';
68
69
  /**
69
70
  * Transforms an operation node tree into another one.
70
71
  *
@@ -97,8 +98,9 @@ import { ValuesNode } from './values-node.js';
97
98
  export declare class OperationNodeTransformer {
98
99
  #private;
99
100
  protected readonly nodeStack: OperationNode[];
100
- readonly transformNode: <T extends OperationNode | undefined>(node: OperationNode | undefined) => T;
101
- protected transformNodeList<T extends OperationNode>(list: readonly T[] | undefined): readonly T[];
101
+ readonly transformNode: <T extends OperationNode | undefined, U extends T | undefined = T>(node: U) => T;
102
+ protected transformNodeList<T extends OperationNode, U extends T = T>(list: readonly U[]): readonly T[];
103
+ protected transformNodeList<T extends OperationNode, U extends T = T>(list: readonly U[] | undefined): readonly T[] | undefined;
102
104
  protected transformSelectQuery(node: SelectQueryNode): SelectQueryNode;
103
105
  protected transformSelection(node: SelectionNode): SelectionNode;
104
106
  protected transformColumn(node: ColumnNode): ColumnNode;
@@ -159,6 +161,7 @@ export declare class OperationNodeTransformer {
159
161
  protected transformGenerated(node: GeneratedNode): GeneratedNode;
160
162
  protected transformDefaultValue(node: DefaultValueNode): DefaultValueNode;
161
163
  protected transformOn(node: OnNode): OnNode;
164
+ protected transformSelectModifier(node: SelectModifierNode): SelectModifierNode;
162
165
  protected transformDataType(node: DataTypeNode): DataTypeNode;
163
166
  protected transformSelectAll(node: SelectAllNode): SelectAllNode;
164
167
  protected transformIdentifier(node: IdentifierNode): IdentifierNode;
@@ -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,7 @@ 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),
103
105
  });
104
106
  transformNode = (node) => {
105
107
  if (!node) {
@@ -117,120 +119,120 @@ class OperationNodeTransformer {
117
119
  return (0, object_utils_js_1.freeze)(list.map(this.transformNode));
118
120
  }
119
121
  transformSelectQuery(node) {
120
- return {
122
+ return (0, require_all_props_js_1.requireAllProps)({
121
123
  kind: 'SelectQueryNode',
122
124
  from: this.transformNode(node.from),
123
125
  selections: this.transformNodeList(node.selections),
124
126
  distinctOnSelections: this.transformNodeList(node.distinctOnSelections),
125
- distinct: node.distinct,
126
127
  joins: this.transformNodeList(node.joins),
127
128
  groupBy: this.transformNode(node.groupBy),
128
129
  orderBy: this.transformNode(node.orderBy),
129
130
  where: this.transformNode(node.where),
130
- modifiers: node.modifiers,
131
+ frontModifiers: this.transformNodeList(node.frontModifiers),
132
+ endModifiers: this.transformNodeList(node.endModifiers),
131
133
  limit: this.transformNode(node.limit),
132
134
  offset: this.transformNode(node.offset),
133
135
  with: this.transformNode(node.with),
134
136
  having: this.transformNode(node.having),
135
137
  union: this.transformNodeList(node.union),
136
- };
138
+ });
137
139
  }
138
140
  transformSelection(node) {
139
- return {
141
+ return (0, require_all_props_js_1.requireAllProps)({
140
142
  kind: 'SelectionNode',
141
143
  selection: this.transformNode(node.selection),
142
- };
144
+ });
143
145
  }
144
146
  transformColumn(node) {
145
- return {
147
+ return (0, require_all_props_js_1.requireAllProps)({
146
148
  kind: 'ColumnNode',
147
149
  column: this.transformNode(node.column),
148
- };
150
+ });
149
151
  }
150
152
  transformAlias(node) {
151
- return {
153
+ return (0, require_all_props_js_1.requireAllProps)({
152
154
  kind: 'AliasNode',
153
155
  node: this.transformNode(node.node),
154
156
  alias: this.transformNode(node.alias),
155
- };
157
+ });
156
158
  }
157
159
  transformTable(node) {
158
- return {
160
+ return (0, require_all_props_js_1.requireAllProps)({
159
161
  kind: 'TableNode',
160
162
  schema: this.transformNode(node.schema),
161
163
  table: this.transformNode(node.table),
162
- };
164
+ });
163
165
  }
164
166
  transformFrom(node) {
165
- return {
167
+ return (0, require_all_props_js_1.requireAllProps)({
166
168
  kind: 'FromNode',
167
169
  froms: this.transformNodeList(node.froms),
168
- };
170
+ });
169
171
  }
170
172
  transformReference(node) {
171
- return {
173
+ return (0, require_all_props_js_1.requireAllProps)({
172
174
  kind: 'ReferenceNode',
173
175
  table: this.transformNode(node.table),
174
176
  column: this.transformNode(node.column),
175
- };
177
+ });
176
178
  }
177
179
  transformFilter(node) {
178
- return {
180
+ return (0, require_all_props_js_1.requireAllProps)({
179
181
  kind: 'FilterNode',
180
182
  left: this.transformNode(node.left),
181
183
  op: this.transformNode(node.op),
182
184
  right: this.transformNode(node.right),
183
- };
185
+ });
184
186
  }
185
187
  transformAnd(node) {
186
- return {
188
+ return (0, require_all_props_js_1.requireAllProps)({
187
189
  kind: 'AndNode',
188
190
  left: this.transformNode(node.left),
189
191
  right: this.transformNode(node.right),
190
- };
192
+ });
191
193
  }
192
194
  transformOr(node) {
193
- return {
195
+ return (0, require_all_props_js_1.requireAllProps)({
194
196
  kind: 'OrNode',
195
197
  left: this.transformNode(node.left),
196
198
  right: this.transformNode(node.right),
197
- };
199
+ });
198
200
  }
199
201
  transformValueList(node) {
200
- return {
202
+ return (0, require_all_props_js_1.requireAllProps)({
201
203
  kind: 'ValueListNode',
202
204
  values: this.transformNodeList(node.values),
203
- };
205
+ });
204
206
  }
205
207
  transformParens(node) {
206
- return {
208
+ return (0, require_all_props_js_1.requireAllProps)({
207
209
  kind: 'ParensNode',
208
210
  node: this.transformNode(node.node),
209
- };
211
+ });
210
212
  }
211
213
  transformJoin(node) {
212
- return {
214
+ return (0, require_all_props_js_1.requireAllProps)({
213
215
  kind: 'JoinNode',
214
216
  joinType: node.joinType,
215
217
  table: this.transformNode(node.table),
216
218
  on: this.transformNode(node.on),
217
- };
219
+ });
218
220
  }
219
221
  transformRaw(node) {
220
- return {
222
+ return (0, require_all_props_js_1.requireAllProps)({
221
223
  kind: 'RawNode',
222
224
  sqlFragments: (0, object_utils_js_1.freeze)([...node.sqlFragments]),
223
225
  parameters: this.transformNodeList(node.parameters),
224
- };
226
+ });
225
227
  }
226
228
  transformWhere(node) {
227
- return {
229
+ return (0, require_all_props_js_1.requireAllProps)({
228
230
  kind: 'WhereNode',
229
231
  where: this.transformNode(node.where),
230
- };
232
+ });
231
233
  }
232
234
  transformInsertQuery(node) {
233
- return {
235
+ return (0, require_all_props_js_1.requireAllProps)({
234
236
  kind: 'InsertQueryNode',
235
237
  into: this.transformNode(node.into),
236
238
  columns: this.transformNodeList(node.columns),
@@ -240,16 +242,16 @@ class OperationNodeTransformer {
240
242
  onDuplicateKey: this.transformNode(node.onDuplicateKey),
241
243
  with: this.transformNode(node.with),
242
244
  ignore: node.ignore,
243
- };
245
+ });
244
246
  }
245
247
  transformValues(node) {
246
- return {
248
+ return (0, require_all_props_js_1.requireAllProps)({
247
249
  kind: 'ValuesNode',
248
250
  values: this.transformNodeList(node.values),
249
- };
251
+ });
250
252
  }
251
253
  transformDeleteQuery(node) {
252
- return {
254
+ return (0, require_all_props_js_1.requireAllProps)({
253
255
  kind: 'DeleteQueryNode',
254
256
  from: this.transformNode(node.from),
255
257
  joins: this.transformNodeList(node.joins),
@@ -258,16 +260,16 @@ class OperationNodeTransformer {
258
260
  with: this.transformNode(node.with),
259
261
  orderBy: this.transformNode(node.orderBy),
260
262
  limit: this.transformNode(node.limit),
261
- };
263
+ });
262
264
  }
263
265
  transformReturning(node) {
264
- return {
266
+ return (0, require_all_props_js_1.requireAllProps)({
265
267
  kind: 'ReturningNode',
266
268
  selections: this.transformNodeList(node.selections),
267
- };
269
+ });
268
270
  }
269
271
  transformCreateTable(node) {
270
- return {
272
+ return (0, require_all_props_js_1.requireAllProps)({
271
273
  kind: 'CreateTableNode',
272
274
  table: this.transformNode(node.table),
273
275
  columns: this.transformNodeList(node.columns),
@@ -275,10 +277,10 @@ class OperationNodeTransformer {
275
277
  temporary: node.temporary,
276
278
  ifNotExists: node.ifNotExists,
277
279
  onCommit: node.onCommit,
278
- };
280
+ });
279
281
  }
280
282
  transformColumnDefinition(node) {
281
- return {
283
+ return (0, require_all_props_js_1.requireAllProps)({
282
284
  kind: 'ColumnDefinitionNode',
283
285
  column: this.transformNode(node.column),
284
286
  dataType: this.transformNode(node.dataType),
@@ -291,48 +293,48 @@ class OperationNodeTransformer {
291
293
  defaultTo: this.transformNode(node.defaultTo),
292
294
  check: this.transformNode(node.check),
293
295
  generated: this.transformNode(node.generated),
294
- };
296
+ });
295
297
  }
296
298
  transformAddColumn(node) {
297
- return {
299
+ return (0, require_all_props_js_1.requireAllProps)({
298
300
  kind: 'AddColumnNode',
299
301
  column: this.transformNode(node.column),
300
- };
302
+ });
301
303
  }
302
304
  transformDropTable(node) {
303
- return {
305
+ return (0, require_all_props_js_1.requireAllProps)({
304
306
  kind: 'DropTableNode',
305
307
  table: this.transformNode(node.table),
306
308
  ifExists: node.ifExists,
307
- };
309
+ });
308
310
  }
309
311
  transformOrderBy(node) {
310
- return {
312
+ return (0, require_all_props_js_1.requireAllProps)({
311
313
  kind: 'OrderByNode',
312
314
  items: this.transformNodeList(node.items),
313
- };
315
+ });
314
316
  }
315
317
  transformOrderByItem(node) {
316
- return {
318
+ return (0, require_all_props_js_1.requireAllProps)({
317
319
  kind: 'OrderByItemNode',
318
320
  orderBy: this.transformNode(node.orderBy),
319
321
  direction: this.transformNode(node.direction),
320
- };
322
+ });
321
323
  }
322
324
  transformGroupBy(node) {
323
- return {
325
+ return (0, require_all_props_js_1.requireAllProps)({
324
326
  kind: 'GroupByNode',
325
327
  items: this.transformNodeList(node.items),
326
- };
328
+ });
327
329
  }
328
330
  transformGroupByItem(node) {
329
- return {
331
+ return (0, require_all_props_js_1.requireAllProps)({
330
332
  kind: 'GroupByItemNode',
331
333
  groupBy: this.transformNode(node.groupBy),
332
- };
334
+ });
333
335
  }
334
336
  transformUpdateQuery(node) {
335
- return {
337
+ return (0, require_all_props_js_1.requireAllProps)({
336
338
  kind: 'UpdateQueryNode',
337
339
  table: this.transformNode(node.table),
338
340
  from: this.transformNode(node.from),
@@ -341,29 +343,29 @@ class OperationNodeTransformer {
341
343
  updates: this.transformNodeList(node.updates),
342
344
  returning: this.transformNode(node.returning),
343
345
  with: this.transformNode(node.with),
344
- };
346
+ });
345
347
  }
346
348
  transformColumnUpdate(node) {
347
- return {
349
+ return (0, require_all_props_js_1.requireAllProps)({
348
350
  kind: 'ColumnUpdateNode',
349
351
  column: this.transformNode(node.column),
350
352
  value: this.transformNode(node.value),
351
- };
353
+ });
352
354
  }
353
355
  transformLimit(node) {
354
- return {
356
+ return (0, require_all_props_js_1.requireAllProps)({
355
357
  kind: 'LimitNode',
356
358
  limit: this.transformNode(node.limit),
357
- };
359
+ });
358
360
  }
359
361
  transformOffset(node) {
360
- return {
362
+ return (0, require_all_props_js_1.requireAllProps)({
361
363
  kind: 'OffsetNode',
362
364
  offset: this.transformNode(node.offset),
363
- };
365
+ });
364
366
  }
365
367
  transformOnConflict(node) {
366
- return {
368
+ return (0, require_all_props_js_1.requireAllProps)({
367
369
  kind: 'OnConflictNode',
368
370
  columns: this.transformNodeList(node.columns),
369
371
  constraint: this.transformNode(node.constraint),
@@ -372,128 +374,128 @@ class OperationNodeTransformer {
372
374
  updates: this.transformNodeList(node.updates),
373
375
  updateWhere: this.transformNode(node.updateWhere),
374
376
  doNothing: node.doNothing,
375
- };
377
+ });
376
378
  }
377
379
  transformOnDuplicateKey(node) {
378
- return {
380
+ return (0, require_all_props_js_1.requireAllProps)({
379
381
  kind: 'OnDuplicateKeyNode',
380
382
  updates: this.transformNodeList(node.updates),
381
- };
383
+ });
382
384
  }
383
385
  transformCreateIndex(node) {
384
- return {
386
+ return (0, require_all_props_js_1.requireAllProps)({
385
387
  kind: 'CreateIndexNode',
386
388
  name: this.transformNode(node.name),
387
389
  table: this.transformNode(node.table),
388
390
  expression: this.transformNode(node.expression),
389
391
  unique: node.unique,
390
392
  using: this.transformNode(node.using),
391
- };
393
+ });
392
394
  }
393
395
  transformList(node) {
394
- return {
396
+ return (0, require_all_props_js_1.requireAllProps)({
395
397
  kind: 'ListNode',
396
398
  items: this.transformNodeList(node.items),
397
- };
399
+ });
398
400
  }
399
401
  transformDropIndex(node) {
400
- return {
402
+ return (0, require_all_props_js_1.requireAllProps)({
401
403
  kind: 'DropIndexNode',
402
404
  name: this.transformNode(node.name),
403
405
  table: this.transformNode(node.table),
404
406
  ifExists: node.ifExists,
405
- };
407
+ });
406
408
  }
407
409
  transformPrimaryKeyConstraint(node) {
408
- return {
410
+ return (0, require_all_props_js_1.requireAllProps)({
409
411
  kind: 'PrimaryKeyConstraintNode',
410
412
  columns: this.transformNodeList(node.columns),
411
413
  name: this.transformNode(node.name),
412
- };
414
+ });
413
415
  }
414
416
  transformUniqueConstraint(node) {
415
- return {
417
+ return (0, require_all_props_js_1.requireAllProps)({
416
418
  kind: 'UniqueConstraintNode',
417
419
  columns: this.transformNodeList(node.columns),
418
420
  name: this.transformNode(node.name),
419
- };
421
+ });
420
422
  }
421
423
  transformForeignKeyConstraint(node) {
422
- return {
424
+ return (0, require_all_props_js_1.requireAllProps)({
423
425
  kind: 'ForeignKeyConstraintNode',
424
426
  columns: this.transformNodeList(node.columns),
425
427
  references: this.transformNode(node.references),
426
428
  name: this.transformNode(node.name),
427
429
  onDelete: node.onDelete,
428
430
  onUpdate: node.onUpdate,
429
- };
431
+ });
430
432
  }
431
433
  transformUnion(node) {
432
- return {
434
+ return (0, require_all_props_js_1.requireAllProps)({
433
435
  kind: 'UnionNode',
434
436
  union: this.transformNode(node.union),
435
437
  all: node.all,
436
- };
438
+ });
437
439
  }
438
440
  transformReferences(node) {
439
- return {
441
+ return (0, require_all_props_js_1.requireAllProps)({
440
442
  kind: 'ReferencesNode',
441
443
  table: this.transformNode(node.table),
442
444
  columns: this.transformNodeList(node.columns),
443
445
  onDelete: node.onDelete,
444
446
  onUpdate: node.onUpdate,
445
- };
447
+ });
446
448
  }
447
449
  transformCheckConstraint(node) {
448
- return {
450
+ return (0, require_all_props_js_1.requireAllProps)({
449
451
  kind: 'CheckConstraintNode',
450
452
  expression: this.transformNode(node.expression),
451
453
  name: this.transformNode(node.name),
452
- };
454
+ });
453
455
  }
454
456
  transformWith(node) {
455
- return {
457
+ return (0, require_all_props_js_1.requireAllProps)({
456
458
  kind: 'WithNode',
457
459
  expressions: this.transformNodeList(node.expressions),
458
460
  recursive: node.recursive,
459
- };
461
+ });
460
462
  }
461
463
  transformCommonTableExpression(node) {
462
- return {
464
+ return (0, require_all_props_js_1.requireAllProps)({
463
465
  kind: 'CommonTableExpressionNode',
464
466
  name: this.transformNode(node.name),
465
467
  expression: this.transformNode(node.expression),
466
- };
468
+ });
467
469
  }
468
470
  transformCommonTableExpressionName(node) {
469
- return {
471
+ return (0, require_all_props_js_1.requireAllProps)({
470
472
  kind: 'CommonTableExpressionNameNode',
471
473
  table: this.transformNode(node.table),
472
474
  columns: this.transformNodeList(node.columns),
473
- };
475
+ });
474
476
  }
475
477
  transformHaving(node) {
476
- return {
478
+ return (0, require_all_props_js_1.requireAllProps)({
477
479
  kind: 'HavingNode',
478
480
  having: this.transformNode(node.having),
479
- };
481
+ });
480
482
  }
481
483
  transformCreateSchema(node) {
482
- return {
484
+ return (0, require_all_props_js_1.requireAllProps)({
483
485
  kind: 'CreateSchemaNode',
484
486
  schema: this.transformNode(node.schema),
485
487
  ifNotExists: node.ifNotExists,
486
- };
488
+ });
487
489
  }
488
490
  transformDropSchema(node) {
489
- return {
491
+ return (0, require_all_props_js_1.requireAllProps)({
490
492
  kind: 'DropSchemaNode',
491
493
  schema: this.transformNode(node.schema),
492
494
  ifExists: node.ifExists,
493
- };
495
+ });
494
496
  }
495
497
  transformAlterTable(node) {
496
- return {
498
+ return (0, require_all_props_js_1.requireAllProps)({
497
499
  kind: 'AlterTableNode',
498
500
  table: this.transformNode(node.table),
499
501
  renameTo: this.transformNode(node.renameTo),
@@ -505,23 +507,23 @@ class OperationNodeTransformer {
505
507
  modifyColumn: this.transformNode(node.modifyColumn),
506
508
  addConstraint: this.transformNode(node.addConstraint),
507
509
  dropConstraint: this.transformNode(node.dropConstraint),
508
- };
510
+ });
509
511
  }
510
512
  transformDropColumn(node) {
511
- return {
513
+ return (0, require_all_props_js_1.requireAllProps)({
512
514
  kind: 'DropColumnNode',
513
515
  column: this.transformNode(node.column),
514
- };
516
+ });
515
517
  }
516
518
  transformRenameColumn(node) {
517
- return {
519
+ return (0, require_all_props_js_1.requireAllProps)({
518
520
  kind: 'RenameColumnNode',
519
521
  column: this.transformNode(node.column),
520
522
  renameTo: this.transformNode(node.renameTo),
521
- };
523
+ });
522
524
  }
523
525
  transformAlterColumn(node) {
524
- return {
526
+ return (0, require_all_props_js_1.requireAllProps)({
525
527
  kind: 'AlterColumnNode',
526
528
  column: this.transformNode(node.column),
527
529
  dataType: this.transformNode(node.dataType),
@@ -530,30 +532,30 @@ class OperationNodeTransformer {
530
532
  dropDefault: node.dropDefault,
531
533
  setNotNull: node.setNotNull,
532
534
  dropNotNull: node.dropNotNull,
533
- };
535
+ });
534
536
  }
535
537
  transformModifyColumn(node) {
536
- return {
538
+ return (0, require_all_props_js_1.requireAllProps)({
537
539
  kind: 'ModifyColumnNode',
538
540
  column: this.transformNode(node.column),
539
- };
541
+ });
540
542
  }
541
543
  transformAddConstraint(node) {
542
- return {
544
+ return (0, require_all_props_js_1.requireAllProps)({
543
545
  kind: 'AddConstraintNode',
544
546
  constraint: this.transformNode(node.constraint),
545
- };
547
+ });
546
548
  }
547
549
  transformDropConstraint(node) {
548
- return {
550
+ return (0, require_all_props_js_1.requireAllProps)({
549
551
  kind: 'DropConstraintNode',
550
552
  constraintName: this.transformNode(node.constraintName),
551
553
  ifExists: node.ifExists,
552
554
  modifier: node.modifier,
553
- };
555
+ });
554
556
  }
555
557
  transformCreateView(node) {
556
- return {
558
+ return (0, require_all_props_js_1.requireAllProps)({
557
559
  kind: 'CreateViewNode',
558
560
  name: this.transformNode(node.name),
559
561
  temporary: node.temporary,
@@ -562,37 +564,44 @@ class OperationNodeTransformer {
562
564
  materialized: node.materialized,
563
565
  columns: this.transformNodeList(node.columns),
564
566
  as: this.transformNode(node.as),
565
- };
567
+ });
566
568
  }
567
569
  transformDropView(node) {
568
- return {
570
+ return (0, require_all_props_js_1.requireAllProps)({
569
571
  kind: 'DropViewNode',
570
572
  name: this.transformNode(node.name),
571
573
  ifExists: node.ifExists,
572
574
  materialized: node.materialized,
573
- };
575
+ });
574
576
  }
575
577
  transformGenerated(node) {
576
- return {
578
+ return (0, require_all_props_js_1.requireAllProps)({
577
579
  kind: 'GeneratedNode',
578
580
  byDefault: node.byDefault,
579
581
  always: node.always,
580
582
  identity: node.identity,
581
583
  stored: node.stored,
582
584
  expression: this.transformNode(node.expression),
583
- };
585
+ });
584
586
  }
585
587
  transformDefaultValue(node) {
586
- return {
588
+ return (0, require_all_props_js_1.requireAllProps)({
587
589
  kind: 'DefaultValueNode',
588
590
  defaultValue: this.transformNode(node.defaultValue),
589
- };
591
+ });
590
592
  }
591
593
  transformOn(node) {
592
- return {
594
+ return (0, require_all_props_js_1.requireAllProps)({
593
595
  kind: 'OnNode',
594
596
  on: this.transformNode(node.on),
595
- };
597
+ });
598
+ }
599
+ transformSelectModifier(node) {
600
+ return (0, require_all_props_js_1.requireAllProps)({
601
+ kind: 'SelectModifierNode',
602
+ modifier: node.modifier,
603
+ rawModifier: this.transformNode(node.rawModifier),
604
+ });
596
605
  }
597
606
  transformDataType(node) {
598
607
  // An Object.freezed leaf node. No need to clone.