kysely 0.7.1 → 0.7.5

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 (194) hide show
  1. package/README.md +24 -19
  2. package/dist/cjs/dialect/dialect-adapter.d.ts +11 -9
  3. package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +1 -1
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +1 -0
  5. package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +0 -1
  6. package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -2
  7. package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -4
  8. package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -18
  9. package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +0 -1
  10. package/dist/cjs/dialect/postgres/postgres-introspector.js +2 -2
  11. package/dist/cjs/driver/database-connection.d.ts +2 -1
  12. package/dist/cjs/driver/driver.d.ts +1 -1
  13. package/dist/cjs/driver/single-connection-provider.d.ts +0 -1
  14. package/dist/cjs/driver/single-connection-provider.js +2 -2
  15. package/dist/cjs/index.d.ts +2 -1
  16. package/dist/cjs/index.js +2 -1
  17. package/dist/cjs/kysely.d.ts +7 -6
  18. package/dist/cjs/kysely.js +8 -6
  19. package/dist/cjs/migration/migration.js +11 -10
  20. package/dist/cjs/operation-node/alter-column-node.d.ts +2 -2
  21. package/dist/cjs/operation-node/alter-column-node.js +2 -2
  22. package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
  23. package/dist/cjs/operation-node/alter-table-node.js +2 -2
  24. package/dist/cjs/operation-node/column-definition-node.d.ts +2 -2
  25. package/dist/cjs/operation-node/column-definition-node.js +2 -2
  26. package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
  27. package/dist/cjs/operation-node/create-index-node.js +2 -2
  28. package/dist/cjs/operation-node/create-table-node.d.ts +2 -1
  29. package/dist/cjs/operation-node/create-table-node.js +1 -5
  30. package/dist/cjs/operation-node/drop-index-node.d.ts +3 -3
  31. package/dist/cjs/operation-node/drop-index-node.js +2 -2
  32. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +12 -1
  33. package/dist/cjs/operation-node/foreign-key-constraint-node.js +6 -0
  34. package/dist/cjs/operation-node/insert-query-node.d.ts +5 -2
  35. package/dist/cjs/operation-node/insert-query-node.js +2 -9
  36. package/dist/cjs/operation-node/join-node.d.ts +1 -0
  37. package/dist/cjs/operation-node/join-node.js +8 -0
  38. package/dist/cjs/operation-node/on-conflict-node.d.ts +2 -2
  39. package/dist/cjs/operation-node/on-conflict-node.js +2 -2
  40. package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +14 -0
  41. package/dist/cjs/operation-node/on-duplicate-key-node.js +18 -0
  42. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  43. package/dist/cjs/operation-node/operation-node-transformer.js +12 -0
  44. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  45. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  46. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  47. package/dist/cjs/operation-node/references-node.d.ts +5 -3
  48. package/dist/cjs/operation-node/references-node.js +6 -0
  49. package/dist/cjs/operation-node/table-node.js +2 -2
  50. package/dist/cjs/parser/data-type-parser.d.ts +5 -0
  51. package/dist/cjs/parser/data-type-parser.js +11 -0
  52. package/dist/cjs/parser/default-value-parser.d.ts +6 -0
  53. package/dist/cjs/parser/default-value-parser.js +11 -0
  54. package/dist/cjs/parser/filter-parser.d.ts +2 -2
  55. package/dist/cjs/parser/filter-parser.js +34 -36
  56. package/dist/cjs/parser/join-parser.d.ts +1 -1
  57. package/dist/cjs/parser/join-parser.js +9 -11
  58. package/dist/cjs/parser/parse-context.d.ts +34 -7
  59. package/dist/cjs/parser/parse-context.js +42 -34
  60. package/dist/cjs/parser/reference-parser.d.ts +2 -2
  61. package/dist/cjs/parser/reference-parser.js +16 -12
  62. package/dist/cjs/parser/select-parser.d.ts +1 -2
  63. package/dist/cjs/parser/select-parser.js +4 -5
  64. package/dist/cjs/parser/table-parser.js +11 -6
  65. package/dist/cjs/parser/update-set-parser.js +1 -1
  66. package/dist/cjs/parser/value-parser.js +1 -1
  67. package/dist/cjs/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +7 -7
  68. package/dist/cjs/query-builder/{sub-query-builder.js → expression-builder.js} +6 -10
  69. package/dist/cjs/query-builder/join-builder.d.ts +2 -2
  70. package/dist/cjs/query-builder/join-builder.js +8 -12
  71. package/dist/cjs/query-builder/query-builder.d.ts +47 -8
  72. package/dist/cjs/query-builder/query-builder.js +163 -91
  73. package/dist/cjs/query-builder/type-utils.d.ts +5 -5
  74. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -1
  75. package/dist/cjs/query-compiler/default-query-compiler.js +26 -6
  76. package/dist/cjs/query-creator.d.ts +2 -2
  77. package/dist/cjs/query-creator.js +8 -12
  78. package/dist/cjs/schema/alter-table-builder.d.ts +31 -8
  79. package/dist/cjs/schema/alter-table-builder.js +80 -7
  80. package/dist/cjs/schema/column-definition-builder.d.ts +10 -4
  81. package/dist/cjs/schema/column-definition-builder.js +11 -6
  82. package/dist/cjs/schema/create-index-builder.d.ts +5 -5
  83. package/dist/cjs/schema/create-index-builder.js +19 -28
  84. package/dist/cjs/schema/create-schema-builder.d.ts +5 -5
  85. package/dist/cjs/schema/create-schema-builder.js +9 -13
  86. package/dist/cjs/schema/create-table-builder.d.ts +22 -10
  87. package/dist/cjs/schema/create-table-builder.js +41 -34
  88. package/dist/cjs/schema/drop-index-builder.d.ts +5 -5
  89. package/dist/cjs/schema/drop-index-builder.js +11 -16
  90. package/dist/cjs/schema/drop-schema-builder.d.ts +5 -5
  91. package/dist/cjs/schema/drop-schema-builder.js +9 -13
  92. package/dist/cjs/schema/drop-table-builder.d.ts +5 -5
  93. package/dist/cjs/schema/drop-table-builder.js +9 -13
  94. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +14 -0
  95. package/dist/cjs/schema/foreign-key-constraint-builder.js +26 -0
  96. package/dist/cjs/transformers/with-schema-transformer.d.ts +0 -5
  97. package/dist/cjs/transformers/with-schema-transformer.js +21 -21
  98. package/dist/esm/dialect/dialect-adapter.d.ts +11 -9
  99. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +1 -1
  100. package/dist/esm/dialect/mysql/mysql-driver.js +1 -0
  101. package/dist/esm/dialect/mysql/mysql-introspector.d.ts +0 -1
  102. package/dist/esm/dialect/mysql/mysql-introspector.js +2 -2
  103. package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -4
  104. package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -18
  105. package/dist/esm/dialect/postgres/postgres-introspector.d.ts +0 -1
  106. package/dist/esm/dialect/postgres/postgres-introspector.js +2 -2
  107. package/dist/esm/driver/database-connection.d.ts +2 -1
  108. package/dist/esm/driver/driver.d.ts +1 -1
  109. package/dist/esm/driver/single-connection-provider.d.ts +0 -1
  110. package/dist/esm/driver/single-connection-provider.js +2 -2
  111. package/dist/esm/index.d.ts +2 -1
  112. package/dist/esm/index.js +2 -1
  113. package/dist/esm/kysely.d.ts +7 -6
  114. package/dist/esm/kysely.js +8 -6
  115. package/dist/esm/migration/migration.js +12 -11
  116. package/dist/esm/operation-node/alter-column-node.d.ts +2 -2
  117. package/dist/esm/operation-node/alter-column-node.js +2 -2
  118. package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
  119. package/dist/esm/operation-node/alter-table-node.js +2 -2
  120. package/dist/esm/operation-node/column-definition-node.d.ts +2 -2
  121. package/dist/esm/operation-node/column-definition-node.js +2 -2
  122. package/dist/esm/operation-node/create-index-node.d.ts +2 -2
  123. package/dist/esm/operation-node/create-index-node.js +2 -2
  124. package/dist/esm/operation-node/create-table-node.d.ts +2 -1
  125. package/dist/esm/operation-node/create-table-node.js +1 -5
  126. package/dist/esm/operation-node/drop-index-node.d.ts +3 -3
  127. package/dist/esm/operation-node/drop-index-node.js +2 -2
  128. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +12 -1
  129. package/dist/esm/operation-node/foreign-key-constraint-node.js +6 -0
  130. package/dist/esm/operation-node/insert-query-node.d.ts +5 -2
  131. package/dist/esm/operation-node/insert-query-node.js +2 -9
  132. package/dist/esm/operation-node/join-node.d.ts +1 -0
  133. package/dist/esm/operation-node/join-node.js +8 -0
  134. package/dist/esm/operation-node/on-conflict-node.d.ts +2 -2
  135. package/dist/esm/operation-node/on-conflict-node.js +2 -2
  136. package/dist/esm/operation-node/on-duplicate-key-node.d.ts +14 -0
  137. package/dist/esm/operation-node/on-duplicate-key-node.js +15 -0
  138. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  139. package/dist/esm/operation-node/operation-node-transformer.js +12 -0
  140. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  141. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  142. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  143. package/dist/esm/operation-node/references-node.d.ts +5 -3
  144. package/dist/esm/operation-node/references-node.js +6 -0
  145. package/dist/esm/operation-node/table-node.js +2 -2
  146. package/dist/esm/parser/data-type-parser.d.ts +5 -0
  147. package/dist/esm/parser/data-type-parser.js +7 -0
  148. package/dist/esm/parser/default-value-parser.d.ts +6 -0
  149. package/dist/esm/parser/default-value-parser.js +7 -0
  150. package/dist/esm/parser/filter-parser.d.ts +2 -2
  151. package/dist/esm/parser/filter-parser.js +31 -33
  152. package/dist/esm/parser/join-parser.d.ts +1 -1
  153. package/dist/esm/parser/join-parser.js +7 -9
  154. package/dist/esm/parser/parse-context.d.ts +34 -7
  155. package/dist/esm/parser/parse-context.js +40 -32
  156. package/dist/esm/parser/reference-parser.d.ts +2 -2
  157. package/dist/esm/parser/reference-parser.js +16 -12
  158. package/dist/esm/parser/select-parser.d.ts +1 -2
  159. package/dist/esm/parser/select-parser.js +3 -3
  160. package/dist/esm/parser/table-parser.js +11 -6
  161. package/dist/esm/parser/update-set-parser.js +1 -1
  162. package/dist/esm/parser/value-parser.js +1 -1
  163. package/dist/esm/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +7 -7
  164. package/dist/esm/query-builder/{sub-query-builder.js → expression-builder.js} +4 -8
  165. package/dist/esm/query-builder/join-builder.d.ts +2 -2
  166. package/dist/esm/query-builder/join-builder.js +9 -13
  167. package/dist/esm/query-builder/query-builder.d.ts +47 -8
  168. package/dist/esm/query-builder/query-builder.js +165 -93
  169. package/dist/esm/query-builder/type-utils.d.ts +5 -5
  170. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -1
  171. package/dist/esm/query-compiler/default-query-compiler.js +27 -7
  172. package/dist/esm/query-creator.d.ts +2 -2
  173. package/dist/esm/query-creator.js +8 -12
  174. package/dist/esm/schema/alter-table-builder.d.ts +31 -8
  175. package/dist/esm/schema/alter-table-builder.js +78 -6
  176. package/dist/esm/schema/column-definition-builder.d.ts +10 -4
  177. package/dist/esm/schema/column-definition-builder.js +12 -7
  178. package/dist/esm/schema/create-index-builder.d.ts +5 -5
  179. package/dist/esm/schema/create-index-builder.js +19 -28
  180. package/dist/esm/schema/create-schema-builder.d.ts +5 -5
  181. package/dist/esm/schema/create-schema-builder.js +9 -13
  182. package/dist/esm/schema/create-table-builder.d.ts +22 -10
  183. package/dist/esm/schema/create-table-builder.js +41 -34
  184. package/dist/esm/schema/drop-index-builder.d.ts +5 -5
  185. package/dist/esm/schema/drop-index-builder.js +11 -16
  186. package/dist/esm/schema/drop-schema-builder.d.ts +5 -5
  187. package/dist/esm/schema/drop-schema-builder.js +9 -13
  188. package/dist/esm/schema/drop-table-builder.d.ts +5 -5
  189. package/dist/esm/schema/drop-table-builder.js +9 -13
  190. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +14 -0
  191. package/dist/esm/schema/foreign-key-constraint-builder.js +22 -0
  192. package/dist/esm/transformers/with-schema-transformer.d.ts +0 -5
  193. package/dist/esm/transformers/with-schema-transformer.js +21 -21
  194. package/package.json +1 -1
@@ -35,7 +35,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
35
35
  this.append(' ');
36
36
  }
37
37
  this.append('select ');
38
- if (node.distinctOnSelections && !(0, object_utils_js_1.isEmpty)(node.distinctOnSelections)) {
38
+ if (node.distinctOnSelections) {
39
39
  this.compileDistinctOn(node.distinctOnSelections);
40
40
  this.append(' ');
41
41
  }
@@ -121,8 +121,11 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
121
121
  this.visitNode(node.with);
122
122
  this.append(' ');
123
123
  }
124
- this.append(this.getInsertInto(node));
125
- this.append(' ');
124
+ this.append('insert');
125
+ if (node.ignore) {
126
+ this.append(' ignore');
127
+ }
128
+ this.append(' into ');
126
129
  this.visitNode(node.into);
127
130
  if (node.columns) {
128
131
  this.append(' (');
@@ -137,6 +140,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
137
140
  this.append(' ');
138
141
  this.visitNode(node.onConflict);
139
142
  }
143
+ if (node.onDuplicateKey) {
144
+ this.append(' ');
145
+ this.visitNode(node.onDuplicateKey);
146
+ }
140
147
  if (node.returning) {
141
148
  this.append(' ');
142
149
  this.visitNode(node.returning);
@@ -145,9 +152,6 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
145
152
  this.append(')');
146
153
  }
147
154
  }
148
- getInsertInto(node) {
149
- return 'insert into';
150
- }
151
155
  visitDeleteQuery(node) {
152
156
  const isSubQuery = this.nodeStack.find(query_node_js_1.QueryNode.is) !== node;
153
157
  if (isSubQuery) {
@@ -333,6 +337,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
333
337
  this.append(' on delete ');
334
338
  this.append(node.onDelete);
335
339
  }
340
+ if (node.onUpdate) {
341
+ this.append(' on update ');
342
+ this.append(node.onUpdate);
343
+ }
336
344
  }
337
345
  visitDropTable(node) {
338
346
  this.append('drop table ');
@@ -423,6 +431,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
423
431
  this.compileList(node.updates);
424
432
  }
425
433
  }
434
+ visitOnDuplicateKey(node) {
435
+ this.append('on duplicate key update ');
436
+ this.compileList(node.updates);
437
+ }
426
438
  visitCreateIndex(node) {
427
439
  this.append('create ');
428
440
  if (node.unique) {
@@ -515,6 +527,14 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
515
527
  this.compileList(node.columns);
516
528
  this.append(') ');
517
529
  this.visitNode(node.references);
530
+ if (node.onDelete) {
531
+ this.append(' on delete ');
532
+ this.append(node.onDelete);
533
+ }
534
+ if (node.onUpdate) {
535
+ this.append(' on update ');
536
+ this.append(node.onUpdate);
537
+ }
518
538
  }
519
539
  visitList(node) {
520
540
  this.compileList(node.items);
@@ -5,7 +5,7 @@ import { QueryExecutor } from './query-executor/query-executor.js';
5
5
  import { RawBuilder } from './raw-builder/raw-builder.js';
6
6
  import { CommonTableExpression, QueryCreatorWithCommonTableExpression } from './parser/with-parser.js';
7
7
  import { WithNode } from './operation-node/with-node.js';
8
- import { DialectAdapter } from './index.js';
8
+ import { ParseContext } from './parser/parse-context.js';
9
9
  export declare class QueryCreator<DB> {
10
10
  #private;
11
11
  constructor(props: QueryCreatorProps);
@@ -378,7 +378,7 @@ export declare class QueryCreator<DB> {
378
378
  raw<T = unknown>(sql: string, params?: any[]): RawBuilder<T>;
379
379
  }
380
380
  export interface QueryCreatorProps {
381
- readonly adapter: DialectAdapter;
382
381
  readonly executor: QueryExecutor;
382
+ readonly parseContext: ParseContext;
383
383
  readonly withNode?: WithNode;
384
384
  }
@@ -13,7 +13,6 @@ const with_node_js_1 = require("./operation-node/with-node.js");
13
13
  const query_id_js_1 = require("./util/query-id.js");
14
14
  const with_schema_plugin_js_1 = require("./plugin/with-schema/with-schema-plugin.js");
15
15
  const object_utils_js_1 = require("./util/object-utils.js");
16
- const parse_context_js_1 = require("./parser/parse-context.js");
17
16
  class QueryCreator {
18
17
  #props;
19
18
  constructor(props) {
@@ -23,8 +22,8 @@ class QueryCreator {
23
22
  return new query_builder_js_1.QueryBuilder({
24
23
  queryId: (0, query_id_js_1.createQueryId)(),
25
24
  executor: this.#props.executor,
26
- adapter: this.#props.adapter,
27
- queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#parseContext, from), this.#props.withNode),
25
+ parseContext: this.#props.parseContext,
26
+ queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#props.parseContext, from), this.#props.withNode),
28
27
  });
29
28
  }
30
29
  /**
@@ -72,7 +71,7 @@ class QueryCreator {
72
71
  return new query_builder_js_1.QueryBuilder({
73
72
  queryId: (0, query_id_js_1.createQueryId)(),
74
73
  executor: this.#props.executor,
75
- adapter: this.#props.adapter,
74
+ parseContext: this.#props.parseContext,
76
75
  queryNode: insert_query_node_js_1.InsertQueryNode.create((0, table_parser_js_1.parseTable)(table), this.#props.withNode),
77
76
  });
78
77
  }
@@ -94,8 +93,8 @@ class QueryCreator {
94
93
  return new query_builder_js_1.QueryBuilder({
95
94
  queryId: (0, query_id_js_1.createQueryId)(),
96
95
  executor: this.#props.executor,
97
- adapter: this.#props.adapter,
98
- queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#parseContext, table), this.#props.withNode),
96
+ parseContext: this.#props.parseContext,
97
+ queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#props.parseContext, table), this.#props.withNode),
99
98
  });
100
99
  }
101
100
  /**
@@ -120,8 +119,8 @@ class QueryCreator {
120
119
  return new query_builder_js_1.QueryBuilder({
121
120
  queryId: (0, query_id_js_1.createQueryId)(),
122
121
  executor: this.#props.executor,
123
- adapter: this.#props.adapter,
124
- queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#parseContext, table), this.#props.withNode),
122
+ parseContext: this.#props.parseContext,
123
+ queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#props.parseContext, table), this.#props.withNode),
125
124
  });
126
125
  }
127
126
  /**
@@ -147,7 +146,7 @@ class QueryCreator {
147
146
  * ```
148
147
  */
149
148
  with(name, expression) {
150
- const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#parseContext, name, expression);
149
+ const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#props.parseContext, name, expression);
151
150
  return new QueryCreator({
152
151
  ...this.#props,
153
152
  withNode: this.#props.withNode
@@ -325,8 +324,5 @@ class QueryCreator {
325
324
  executor: this.#props.executor,
326
325
  });
327
326
  }
328
- get #parseContext() {
329
- return (0, parse_context_js_1.createParseContext)(this.#props.adapter);
330
- }
331
327
  }
332
328
  exports.QueryCreator = QueryCreator;
@@ -2,15 +2,16 @@ import { AlterColumnNode } from '../operation-node/alter-column-node.js';
2
2
  import { AlterTableNode } from '../operation-node/alter-table-node.js';
3
3
  import { ColumnDataType } from '../operation-node/data-type-node.js';
4
4
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
5
- import { OnDelete } from '../operation-node/references-node.js';
5
+ import { OnModifyForeignAction } from '../operation-node/references-node.js';
6
6
  import { CompiledQuery } from '../query-compiler/compiled-query.js';
7
- import { RawBuilder } from '../raw-builder/raw-builder.js';
8
7
  import { Compilable } from '../util/compilable.js';
9
8
  import { PrimitiveValue } from '../util/object-utils.js';
10
9
  import { ColumnDefinitionBuilder, ColumnDefinitionBuilderInterface } from './column-definition-builder.js';
11
10
  import { AnyRawBuilder } from '../query-builder/type-utils.js';
12
11
  import { QueryId } from '../util/query-id.js';
13
12
  import { QueryExecutor } from '../query-executor/query-executor.js';
13
+ import { DataTypeExpression } from '../parser/data-type-parser.js';
14
+ import { ForeignKeyConstraintBuilder, ForeignKeyConstraintBuilderInterface } from './foreign-key-constraint-builder.js';
14
15
  export declare class AlterTableBuilder {
15
16
  #private;
16
17
  constructor(props: AlterTableBuilderProps);
@@ -19,8 +20,16 @@ export declare class AlterTableBuilder {
19
20
  alterColumn(column: string): AlterColumnBuilder;
20
21
  dropColumn(column: string): AlterTableExecutor;
21
22
  renameColumn(column: string, newColumn: string): AlterTableExecutor;
22
- addColumn(columnName: string, dataType: ColumnDataType | RawBuilder): AlterTableAddColumnBuilder;
23
- modifyColumn(columnName: string, dataType: ColumnDataType | RawBuilder): AlterTableModifyColumnBuilder;
23
+ addColumn(columnName: string, dataType: DataTypeExpression): AlterTableAddColumnBuilder;
24
+ /**
25
+ * Creates an `alter table modify column` query. The `modify column` statement
26
+ * is only implemeted by MySQL and oracle AFAIK. On other databases you
27
+ * should use the `alterColumn` method.
28
+ */
29
+ modifyColumn(columnName: string, dataType: DataTypeExpression): AlterTableModifyColumnBuilder;
30
+ addUniqueConstraint(constraintName: string, columns: string[]): AlterTableExecutor;
31
+ addCheckConstraint(constraintName: string, checkExpression: string): AlterTableExecutor;
32
+ addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[]): AlterTableAddForeignKeyConstraintBuilder;
24
33
  }
25
34
  export interface AlterTableBuilderProps {
26
35
  readonly queryId: QueryId;
@@ -48,13 +57,14 @@ export declare class AlterTableExecutor implements OperationNodeSource, Compilab
48
57
  }
49
58
  export interface AlterTableExecutorProps extends AlterTableBuilderProps {
50
59
  }
51
- export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder> {
60
+ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder>, OperationNodeSource, Compilable {
52
61
  #private;
53
62
  constructor(props: AlterTableAddColumnBuilderProps);
54
63
  increments(): AlterTableAddColumnBuilder;
55
64
  primaryKey(): AlterTableAddColumnBuilder;
56
65
  references(ref: string): AlterTableAddColumnBuilder;
57
- onDelete(onDelete: OnDelete): AlterTableAddColumnBuilder;
66
+ onDelete(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
67
+ onUpdate(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
58
68
  unique(): AlterTableAddColumnBuilder;
59
69
  notNull(): AlterTableAddColumnBuilder;
60
70
  defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableAddColumnBuilder;
@@ -66,13 +76,14 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
66
76
  export interface AlterTableAddColumnBuilderProps extends AlterTableBuilderProps {
67
77
  readonly columnBuilder: ColumnDefinitionBuilder;
68
78
  }
69
- export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder> {
79
+ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder>, OperationNodeSource, Compilable {
70
80
  #private;
71
81
  constructor(props: AlterTableModifyColumnBuilderProps);
72
82
  increments(): AlterTableModifyColumnBuilder;
73
83
  primaryKey(): AlterTableModifyColumnBuilder;
74
84
  references(ref: string): AlterTableModifyColumnBuilder;
75
- onDelete(onDelete: OnDelete): AlterTableModifyColumnBuilder;
85
+ onDelete(onDelete: OnModifyForeignAction): AlterTableModifyColumnBuilder;
86
+ onUpdate(onUpdate: OnModifyForeignAction): AlterTableModifyColumnBuilder;
76
87
  unique(): AlterTableModifyColumnBuilder;
77
88
  notNull(): AlterTableModifyColumnBuilder;
78
89
  defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableModifyColumnBuilder;
@@ -84,3 +95,15 @@ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBu
84
95
  export interface AlterTableModifyColumnBuilderProps extends AlterTableBuilderProps {
85
96
  readonly columnBuilder: ColumnDefinitionBuilder;
86
97
  }
98
+ export declare class AlterTableAddForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface<AlterTableAddForeignKeyConstraintBuilder>, OperationNodeSource, Compilable {
99
+ #private;
100
+ constructor(props: AlterTableAddForeignKeyConstraintBuilderProps);
101
+ onDelete(onDelete: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
102
+ onUpdate(onUpdate: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
103
+ toOperationNode(): AlterTableNode;
104
+ compile(): CompiledQuery;
105
+ execute(): Promise<void>;
106
+ }
107
+ export interface AlterTableAddForeignKeyConstraintBuilderProps extends AlterTableBuilderProps {
108
+ readonly constraintBuilder: ForeignKeyConstraintBuilder;
109
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AlterTableModifyColumnBuilder = exports.AlterTableAddColumnBuilder = exports.AlterTableExecutor = exports.AlterColumnBuilder = exports.AlterTableBuilder = void 0;
3
+ exports.AlterTableAddForeignKeyConstraintBuilder = exports.AlterTableModifyColumnBuilder = exports.AlterTableAddColumnBuilder = exports.AlterTableExecutor = exports.AlterColumnBuilder = exports.AlterTableBuilder = void 0;
4
4
  const add_column_node_js_1 = require("../operation-node/add-column-node.js");
5
5
  const alter_column_node_js_1 = require("../operation-node/alter-column-node.js");
6
6
  const alter_table_node_js_1 = require("../operation-node/alter-table-node.js");
@@ -16,6 +16,13 @@ const object_utils_js_1 = require("../util/object-utils.js");
16
16
  const prevent_await_js_1 = require("../util/prevent-await.js");
17
17
  const column_definition_builder_js_1 = require("./column-definition-builder.js");
18
18
  const modify_column_node_js_1 = require("../operation-node/modify-column-node.js");
19
+ const data_type_parser_js_1 = require("../parser/data-type-parser.js");
20
+ const foreign_key_constraint_builder_js_1 = require("./foreign-key-constraint-builder.js");
21
+ const add_constraint_node_js_1 = require("../operation-node/add-constraint-node.js");
22
+ const unique_constraint_node_js_1 = require("../operation-node/unique-constraint-node.js");
23
+ const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js");
24
+ const foreign_key_constraint_node_js_1 = require("../operation-node/foreign-key-constraint-node.js");
25
+ const column_node_js_1 = require("../operation-node/column-node.js");
19
26
  class AlterTableBuilder {
20
27
  #props;
21
28
  constructor(props) {
@@ -62,17 +69,40 @@ class AlterTableBuilder {
62
69
  addColumn(columnName, dataType) {
63
70
  return new AlterTableAddColumnBuilder({
64
71
  ...this.#props,
65
- columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0, operation_node_source_js_1.isOperationNodeSource)(dataType)
66
- ? dataType.toOperationNode()
67
- : data_type_node_js_1.DataTypeNode.create(dataType))),
72
+ columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0, data_type_parser_js_1.parseDataTypeExpression)(dataType))),
68
73
  });
69
74
  }
75
+ /**
76
+ * Creates an `alter table modify column` query. The `modify column` statement
77
+ * is only implemeted by MySQL and oracle AFAIK. On other databases you
78
+ * should use the `alterColumn` method.
79
+ */
70
80
  modifyColumn(columnName, dataType) {
71
81
  return new AlterTableModifyColumnBuilder({
72
82
  ...this.#props,
73
- columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0, operation_node_source_js_1.isOperationNodeSource)(dataType)
74
- ? dataType.toOperationNode()
75
- : data_type_node_js_1.DataTypeNode.create(dataType))),
83
+ columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0, data_type_parser_js_1.parseDataTypeExpression)(dataType))),
84
+ });
85
+ }
86
+ addUniqueConstraint(constraintName, columns) {
87
+ return new AlterTableExecutor({
88
+ ...this.#props,
89
+ alterTableNode: alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
90
+ addConstraint: add_constraint_node_js_1.AddConstraintNode.create(unique_constraint_node_js_1.UniqueConstraintNode.create(columns, constraintName)),
91
+ }),
92
+ });
93
+ }
94
+ addCheckConstraint(constraintName, checkExpression) {
95
+ return new AlterTableExecutor({
96
+ ...this.#props,
97
+ alterTableNode: alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
98
+ addConstraint: add_constraint_node_js_1.AddConstraintNode.create(check_constraint_node_js_1.CheckConstraintNode.create(checkExpression, constraintName)),
99
+ }),
100
+ });
101
+ }
102
+ addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns) {
103
+ return new AlterTableAddForeignKeyConstraintBuilder({
104
+ ...this.#props,
105
+ constraintBuilder: new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create), table_node_js_1.TableNode.create(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName)),
76
106
  });
77
107
  }
78
108
  }
@@ -181,6 +211,12 @@ class AlterTableAddColumnBuilder {
181
211
  columnBuilder: this.#props.columnBuilder.onDelete(onDelete),
182
212
  });
183
213
  }
214
+ onUpdate(onDelete) {
215
+ return new AlterTableAddColumnBuilder({
216
+ ...this.#props,
217
+ columnBuilder: this.#props.columnBuilder.onUpdate(onDelete),
218
+ });
219
+ }
184
220
  unique() {
185
221
  return new AlterTableAddColumnBuilder({
186
222
  ...this.#props,
@@ -247,6 +283,12 @@ class AlterTableModifyColumnBuilder {
247
283
  columnBuilder: this.#props.columnBuilder.onDelete(onDelete),
248
284
  });
249
285
  }
286
+ onUpdate(onUpdate) {
287
+ return new AlterTableModifyColumnBuilder({
288
+ ...this.#props,
289
+ columnBuilder: this.#props.columnBuilder.onUpdate(onUpdate),
290
+ });
291
+ }
250
292
  unique() {
251
293
  return new AlterTableModifyColumnBuilder({
252
294
  ...this.#props,
@@ -284,8 +326,39 @@ class AlterTableModifyColumnBuilder {
284
326
  }
285
327
  }
286
328
  exports.AlterTableModifyColumnBuilder = AlterTableModifyColumnBuilder;
329
+ class AlterTableAddForeignKeyConstraintBuilder {
330
+ #props;
331
+ constructor(props) {
332
+ this.#props = (0, object_utils_js_1.freeze)(props);
333
+ }
334
+ onDelete(onDelete) {
335
+ return new AlterTableAddForeignKeyConstraintBuilder({
336
+ ...this.#props,
337
+ constraintBuilder: this.#props.constraintBuilder.onDelete(onDelete),
338
+ });
339
+ }
340
+ onUpdate(onUpdate) {
341
+ return new AlterTableAddForeignKeyConstraintBuilder({
342
+ ...this.#props,
343
+ constraintBuilder: this.#props.constraintBuilder.onUpdate(onUpdate),
344
+ });
345
+ }
346
+ toOperationNode() {
347
+ return this.#props.executor.transformQuery(alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
348
+ addConstraint: add_constraint_node_js_1.AddConstraintNode.create(this.#props.constraintBuilder.toOperationNode()),
349
+ }), this.#props.queryId);
350
+ }
351
+ compile() {
352
+ return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
353
+ }
354
+ async execute() {
355
+ await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
356
+ }
357
+ }
358
+ exports.AlterTableAddForeignKeyConstraintBuilder = AlterTableAddForeignKeyConstraintBuilder;
287
359
  (0, prevent_await_js_1.preventAwait)(AlterTableBuilder, "don't await AlterTableBuilder instances");
288
360
  (0, prevent_await_js_1.preventAwait)(AlterColumnBuilder, "don't await AlterColumnBuilder instances");
289
361
  (0, prevent_await_js_1.preventAwait)(AlterTableExecutor, "don't await AlterTableExecutor instances directly. To execute the query you need to call `execute`");
290
362
  (0, prevent_await_js_1.preventAwait)(AlterTableAddColumnBuilder, "don't await AlterTableAddColumnBuilder instances directly. To execute the query you need to call `execute`");
291
363
  (0, prevent_await_js_1.preventAwait)(AlterTableModifyColumnBuilder, "don't await AlterTableModifyColumnBuilder instances directly. To execute the query you need to call `execute`");
364
+ (0, prevent_await_js_1.preventAwait)(AlterTableAddForeignKeyConstraintBuilder, "don't await AlterTableAddForeignKeyConstraintBuilder instances directly. To execute the query you need to call `execute`");
@@ -1,8 +1,9 @@
1
1
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
2
- import { OnDelete } from '../operation-node/references-node.js';
2
+ import { OnModifyForeignAction } from '../operation-node/references-node.js';
3
3
  import { PrimitiveValue } from '../util/object-utils.js';
4
4
  import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
5
5
  import { AnyRawBuilder } from '../query-builder/type-utils.js';
6
+ import { DefaultValueExpression } from '../parser/default-value-parser.js';
6
7
  export interface ColumnDefinitionBuilderInterface<R> {
7
8
  /**
8
9
  * Makes the column automatically incrementing.
@@ -31,7 +32,11 @@ export interface ColumnDefinitionBuilderInterface<R> {
31
32
  /**
32
33
  * Adds an `on delete` constraint for the foreign key column.
33
34
  */
34
- onDelete(onDelete: OnDelete): R;
35
+ onDelete(onDelete: OnModifyForeignAction): R;
36
+ /**
37
+ * Adds an `on update` constraint for the foreign key column.
38
+ */
39
+ onUpdate(onUpdate: OnModifyForeignAction): R;
35
40
  /**
36
41
  * Adds a unique constraint for the column.
37
42
  */
@@ -71,10 +76,11 @@ export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderI
71
76
  increments(): ColumnDefinitionBuilder;
72
77
  primaryKey(): ColumnDefinitionBuilder;
73
78
  references(ref: string): ColumnDefinitionBuilder;
74
- onDelete(onDelete: OnDelete): ColumnDefinitionBuilder;
79
+ onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilder;
80
+ onUpdate(onUpdate: OnModifyForeignAction): ColumnDefinitionBuilder;
75
81
  unique(): ColumnDefinitionBuilder;
76
82
  notNull(): ColumnDefinitionBuilder;
77
- defaultTo(value: PrimitiveValue | AnyRawBuilder): ColumnDefinitionBuilder;
83
+ defaultTo(value: DefaultValueExpression): ColumnDefinitionBuilder;
78
84
  check(sql: string): ColumnDefinitionBuilder;
79
85
  toOperationNode(): ColumnDefinitionNode;
80
86
  }
@@ -2,14 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ColumnDefinitionBuilder = void 0;
4
4
  const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js");
5
- const operation_node_source_js_1 = require("../operation-node/operation-node-source.js");
6
5
  const reference_node_js_1 = require("../operation-node/reference-node.js");
7
6
  const references_node_js_1 = require("../operation-node/references-node.js");
8
7
  const select_all_node_js_1 = require("../operation-node/select-all-node.js");
9
- const value_node_js_1 = require("../operation-node/value-node.js");
10
8
  const reference_parser_js_1 = require("../parser/reference-parser.js");
11
9
  const prevent_await_js_1 = require("../util/prevent-await.js");
12
10
  const column_definition_node_js_1 = require("../operation-node/column-definition-node.js");
11
+ const default_value_parser_js_1 = require("../parser/default-value-parser.js");
13
12
  class ColumnDefinitionBuilder {
14
13
  #node;
15
14
  constructor(node) {
@@ -40,6 +39,14 @@ class ColumnDefinitionBuilder {
40
39
  references: references_node_js_1.ReferencesNode.cloneWithOnDelete(this.#node.references, onDelete),
41
40
  }));
42
41
  }
42
+ onUpdate(onUpdate) {
43
+ if (!this.#node.references) {
44
+ throw new Error('on update constraint can only be added for foreign keys');
45
+ }
46
+ return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
47
+ references: references_node_js_1.ReferencesNode.cloneWithOnUpdate(this.#node.references, onUpdate),
48
+ }));
49
+ }
43
50
  unique() {
44
51
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { isUnique: true }));
45
52
  }
@@ -48,9 +55,7 @@ class ColumnDefinitionBuilder {
48
55
  }
49
56
  defaultTo(value) {
50
57
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
51
- defaultTo: (0, operation_node_source_js_1.isOperationNodeSource)(value)
52
- ? value.toOperationNode()
53
- : value_node_js_1.ValueNode.createImmediate(value),
58
+ defaultTo: (0, default_value_parser_js_1.parseDefaultValueExpression)(value),
54
59
  }));
55
60
  }
56
61
  check(sql) {
@@ -63,4 +68,4 @@ class ColumnDefinitionBuilder {
63
68
  }
64
69
  }
65
70
  exports.ColumnDefinitionBuilder = ColumnDefinitionBuilder;
66
- (0, prevent_await_js_1.preventAwait)(ColumnDefinitionBuilder, "don't await ColumnBuilder instances directly.");
71
+ (0, prevent_await_js_1.preventAwait)(ColumnDefinitionBuilder, "don't await ColumnDefinitionBuilder instances directly.");
@@ -6,7 +6,7 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
6
6
  import { QueryId } from '../util/query-id.js';
7
7
  export declare class CreateIndexBuilder implements OperationNodeSource, Compilable {
8
8
  #private;
9
- constructor(args: CreateIndexBuilderConstructorArgs);
9
+ constructor(props: CreateIndexBuilderProps);
10
10
  /**
11
11
  * Makes the index unique.
12
12
  */
@@ -49,8 +49,8 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
49
49
  compile(): CompiledQuery;
50
50
  execute(): Promise<void>;
51
51
  }
52
- export interface CreateIndexBuilderConstructorArgs {
53
- queryId: QueryId;
54
- createIndexNode: CreateIndexNode;
55
- executor: QueryExecutor;
52
+ export interface CreateIndexBuilderProps {
53
+ readonly queryId: QueryId;
54
+ readonly executor: QueryExecutor;
55
+ readonly createIndexNode: CreateIndexNode;
56
56
  }
@@ -7,23 +7,19 @@ const raw_node_js_1 = require("../operation-node/raw-node.js");
7
7
  const reference_parser_js_1 = require("../parser/reference-parser.js");
8
8
  const table_parser_js_1 = require("../parser/table-parser.js");
9
9
  const prevent_await_js_1 = require("../util/prevent-await.js");
10
+ const object_utils_js_1 = require("../util/object-utils.js");
10
11
  class CreateIndexBuilder {
11
- #queryId;
12
- #createIndexNode;
13
- #executor;
14
- constructor(args) {
15
- this.#queryId = args.queryId;
16
- this.#createIndexNode = args.createIndexNode;
17
- this.#executor = args.executor;
12
+ #props;
13
+ constructor(props) {
14
+ this.#props = (0, object_utils_js_1.freeze)(props);
18
15
  }
19
16
  /**
20
17
  * Makes the index unique.
21
18
  */
22
19
  unique() {
23
20
  return new CreateIndexBuilder({
24
- queryId: this.#queryId,
25
- executor: this.#executor,
26
- createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
21
+ ...this.#props,
22
+ createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
27
23
  unique: true,
28
24
  }),
29
25
  });
@@ -33,9 +29,8 @@ class CreateIndexBuilder {
33
29
  */
34
30
  on(table) {
35
31
  return new CreateIndexBuilder({
36
- queryId: this.#queryId,
37
- executor: this.#executor,
38
- createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
32
+ ...this.#props,
33
+ createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
39
34
  table: (0, table_parser_js_1.parseTable)(table),
40
35
  }),
41
36
  });
@@ -47,9 +42,8 @@ class CreateIndexBuilder {
47
42
  */
48
43
  column(column) {
49
44
  return new CreateIndexBuilder({
50
- queryId: this.#queryId,
51
- executor: this.#executor,
52
- createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
45
+ ...this.#props,
46
+ createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
53
47
  expression: (0, reference_parser_js_1.parseColumnName)(column),
54
48
  }),
55
49
  });
@@ -61,9 +55,8 @@ class CreateIndexBuilder {
61
55
  */
62
56
  columns(columns) {
63
57
  return new CreateIndexBuilder({
64
- queryId: this.#queryId,
65
- executor: this.#executor,
66
- createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
58
+ ...this.#props,
59
+ createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
67
60
  expression: list_node_js_1.ListNode.create(columns.map(reference_parser_js_1.parseColumnName)),
68
61
  }),
69
62
  });
@@ -82,30 +75,28 @@ class CreateIndexBuilder {
82
75
  */
83
76
  expression(expression) {
84
77
  return new CreateIndexBuilder({
85
- queryId: this.#queryId,
86
- executor: this.#executor,
87
- createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
78
+ ...this.#props,
79
+ createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
88
80
  expression: raw_node_js_1.RawNode.createWithSql(expression),
89
81
  }),
90
82
  });
91
83
  }
92
84
  using(indexType) {
93
85
  return new CreateIndexBuilder({
94
- queryId: this.#queryId,
95
- executor: this.#executor,
96
- createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
86
+ ...this.#props,
87
+ createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
97
88
  using: raw_node_js_1.RawNode.createWithSql(indexType),
98
89
  }),
99
90
  });
100
91
  }
101
92
  toOperationNode() {
102
- return this.#executor.transformQuery(this.#createIndexNode, this.#queryId);
93
+ return this.#props.executor.transformQuery(this.#props.createIndexNode, this.#props.queryId);
103
94
  }
104
95
  compile() {
105
- return this.#executor.compileQuery(this.toOperationNode(), this.#queryId);
96
+ return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
106
97
  }
107
98
  async execute() {
108
- await this.#executor.executeQuery(this.compile(), this.#queryId);
99
+ await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
109
100
  }
110
101
  }
111
102
  exports.CreateIndexBuilder = CreateIndexBuilder;
@@ -6,14 +6,14 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
6
6
  import { QueryId } from '../util/query-id.js';
7
7
  export declare class CreateSchemaBuilder implements OperationNodeSource, Compilable {
8
8
  #private;
9
- constructor(args: CreateSchemaBuilderConstructorArgs);
9
+ constructor(props: CreateSchemaBuilderProps);
10
10
  ifNotExists(): CreateSchemaBuilder;
11
11
  toOperationNode(): CreateSchemaNode;
12
12
  compile(): CompiledQuery;
13
13
  execute(): Promise<void>;
14
14
  }
15
- export interface CreateSchemaBuilderConstructorArgs {
16
- queryId: QueryId;
17
- createSchemaNode: CreateSchemaNode;
18
- executor: QueryExecutor;
15
+ export interface CreateSchemaBuilderProps {
16
+ readonly queryId: QueryId;
17
+ readonly executor: QueryExecutor;
18
+ readonly createSchemaNode: CreateSchemaNode;
19
19
  }