kysely 0.23.5 → 0.24.0

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 (294) hide show
  1. package/README.md +46 -24
  2. package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -2
  3. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -1
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +1 -1
  5. package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
  6. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -0
  7. package/dist/cjs/dialect/sqlite/sqlite-dialect.js +1 -0
  8. package/dist/cjs/driver/runtime-driver.js +4 -2
  9. package/dist/cjs/expression/expression-builder.d.ts +386 -0
  10. package/dist/cjs/expression/expression-builder.js +92 -0
  11. package/dist/cjs/expression/expression-wrapper.d.ts +92 -0
  12. package/dist/cjs/expression/expression-wrapper.js +54 -0
  13. package/dist/cjs/expression/expression.d.ts +1 -1
  14. package/dist/cjs/helpers/postgres.d.ts +133 -0
  15. package/dist/cjs/helpers/postgres.js +141 -0
  16. package/dist/cjs/index.d.ts +4 -3
  17. package/dist/cjs/index.js +4 -2
  18. package/dist/cjs/kysely.d.ts +10 -0
  19. package/dist/cjs/kysely.js +12 -1
  20. package/dist/cjs/migration/file-migration-provider.d.ts +5 -2
  21. package/dist/cjs/migration/migrator.d.ts +5 -2
  22. package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -3
  23. package/dist/cjs/operation-node/create-index-node.d.ts +2 -0
  24. package/dist/cjs/operation-node/delete-query-node.d.ts +0 -1
  25. package/dist/cjs/operation-node/delete-query-node.js +0 -6
  26. package/dist/cjs/operation-node/function-node.d.ts +13 -0
  27. package/dist/cjs/operation-node/function-node.js +19 -0
  28. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  29. package/dist/cjs/operation-node/operation-node-transformer.js +9 -0
  30. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  31. package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
  32. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  33. package/dist/cjs/operation-node/operator-node.d.ts +13 -2
  34. package/dist/cjs/operation-node/operator-node.js +38 -3
  35. package/dist/cjs/operation-node/query-node.d.ts +25 -8
  36. package/dist/cjs/operation-node/query-node.js +9 -2
  37. package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
  38. package/dist/cjs/operation-node/select-query-node.js +0 -6
  39. package/dist/cjs/operation-node/update-query-node.d.ts +0 -1
  40. package/dist/cjs/operation-node/update-query-node.js +0 -6
  41. package/dist/cjs/parser/binary-operation-parser.d.ts +9 -10
  42. package/dist/cjs/parser/binary-operation-parser.js +89 -39
  43. package/dist/cjs/parser/coalesce-parser.d.ts +0 -2
  44. package/dist/cjs/parser/coalesce-parser.js +0 -9
  45. package/dist/cjs/parser/expression-parser.d.ts +7 -3
  46. package/dist/cjs/parser/expression-parser.js +3 -3
  47. package/dist/cjs/parser/group-by-parser.d.ts +3 -2
  48. package/dist/cjs/parser/group-by-parser.js +3 -0
  49. package/dist/cjs/parser/insert-values-parser.d.ts +4 -1
  50. package/dist/cjs/parser/insert-values-parser.js +19 -13
  51. package/dist/cjs/parser/join-parser.js +1 -1
  52. package/dist/cjs/parser/parse-utils.d.ts +0 -2
  53. package/dist/cjs/parser/parse-utils.js +1 -8
  54. package/dist/cjs/parser/returning-parser.d.ts +2 -1
  55. package/dist/cjs/parser/select-parser.d.ts +5 -13
  56. package/dist/cjs/parser/select-parser.js +8 -4
  57. package/dist/cjs/parser/table-parser.d.ts +5 -3
  58. package/dist/cjs/parser/unary-operation-parser.d.ts +5 -2
  59. package/dist/cjs/parser/unary-operation-parser.js +9 -8
  60. package/dist/cjs/parser/update-set-parser.d.ts +4 -1
  61. package/dist/cjs/parser/update-set-parser.js +9 -4
  62. package/dist/cjs/parser/value-parser.d.ts +5 -0
  63. package/dist/cjs/parser/value-parser.js +1 -3
  64. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
  65. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  66. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +40 -113
  67. package/dist/cjs/query-builder/aggregate-function-builder.js +23 -63
  68. package/dist/cjs/query-builder/delete-query-builder.d.ts +220 -201
  69. package/dist/cjs/query-builder/delete-query-builder.js +21 -27
  70. package/dist/cjs/query-builder/delete-result.js +3 -0
  71. package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +62 -0
  72. package/dist/cjs/query-builder/deprecated-having-expression-builder.js +2 -0
  73. package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +62 -0
  74. package/dist/cjs/query-builder/deprecated-on-expression-builder.js +2 -0
  75. package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +62 -0
  76. package/dist/cjs/query-builder/deprecated-where-expression-builder.js +2 -0
  77. package/dist/cjs/query-builder/function-module.d.ts +40 -12
  78. package/dist/cjs/query-builder/function-module.js +43 -329
  79. package/dist/cjs/query-builder/having-interface.d.ts +19 -16
  80. package/dist/cjs/query-builder/insert-query-builder.d.ts +75 -26
  81. package/dist/cjs/query-builder/insert-query-builder.js +21 -29
  82. package/dist/cjs/query-builder/insert-result.js +3 -0
  83. package/dist/cjs/query-builder/join-builder.d.ts +23 -26
  84. package/dist/cjs/query-builder/join-builder.js +17 -22
  85. package/dist/cjs/query-builder/no-result-error.d.ts +1 -0
  86. package/dist/cjs/query-builder/no-result-error.js +5 -1
  87. package/dist/cjs/query-builder/on-conflict-builder.d.ts +158 -276
  88. package/dist/cjs/query-builder/on-conflict-builder.js +52 -36
  89. package/dist/cjs/query-builder/over-builder.d.ts +5 -0
  90. package/dist/cjs/query-builder/over-builder.js +7 -0
  91. package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
  92. package/dist/cjs/query-builder/select-query-builder.d.ts +148 -237
  93. package/dist/cjs/query-builder/select-query-builder.js +333 -78
  94. package/dist/cjs/query-builder/update-query-builder.d.ts +145 -213
  95. package/dist/cjs/query-builder/update-query-builder.js +21 -115
  96. package/dist/cjs/query-builder/update-result.js +3 -0
  97. package/dist/cjs/query-builder/where-interface.d.ts +71 -184
  98. package/dist/cjs/query-compiler/default-query-compiler.d.ts +3 -0
  99. package/dist/cjs/query-compiler/default-query-compiler.js +17 -1
  100. package/dist/cjs/query-creator.d.ts +9 -2
  101. package/dist/cjs/query-creator.js +1 -24
  102. package/dist/cjs/query-executor/query-executor.d.ts +3 -3
  103. package/dist/cjs/raw-builder/raw-builder.d.ts +5 -3
  104. package/dist/cjs/raw-builder/raw-builder.js +13 -7
  105. package/dist/cjs/raw-builder/sql.d.ts +17 -9
  106. package/dist/cjs/raw-builder/sql.js +8 -2
  107. package/dist/cjs/schema/alter-column-builder.d.ts +5 -0
  108. package/dist/cjs/schema/alter-column-builder.js +7 -0
  109. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
  110. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
  111. package/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts +5 -0
  112. package/dist/cjs/schema/alter-table-drop-constraint-builder.js +7 -0
  113. package/dist/cjs/schema/column-definition-builder.d.ts +6 -1
  114. package/dist/cjs/schema/column-definition-builder.js +8 -1
  115. package/dist/cjs/schema/create-index-builder.d.ts +51 -9
  116. package/dist/cjs/schema/create-index-builder.js +17 -0
  117. package/dist/cjs/schema/create-schema-builder.d.ts +5 -0
  118. package/dist/cjs/schema/create-schema-builder.js +7 -0
  119. package/dist/cjs/schema/create-table-builder.d.ts +3 -1
  120. package/dist/cjs/schema/create-table-builder.js +3 -1
  121. package/dist/cjs/schema/create-type-builder.d.ts +5 -0
  122. package/dist/cjs/schema/create-type-builder.js +7 -0
  123. package/dist/cjs/schema/create-view-builder.d.ts +5 -0
  124. package/dist/cjs/schema/create-view-builder.js +7 -0
  125. package/dist/cjs/schema/drop-index-builder.d.ts +5 -0
  126. package/dist/cjs/schema/drop-index-builder.js +7 -0
  127. package/dist/cjs/schema/drop-schema-builder.d.ts +5 -0
  128. package/dist/cjs/schema/drop-schema-builder.js +7 -0
  129. package/dist/cjs/schema/drop-table-builder.d.ts +5 -0
  130. package/dist/cjs/schema/drop-table-builder.js +7 -0
  131. package/dist/cjs/schema/drop-type-builder.d.ts +5 -0
  132. package/dist/cjs/schema/drop-type-builder.js +7 -0
  133. package/dist/cjs/schema/drop-view-builder.d.ts +5 -0
  134. package/dist/cjs/schema/drop-view-builder.js +7 -0
  135. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +5 -0
  136. package/dist/cjs/schema/foreign-key-constraint-builder.js +7 -0
  137. package/dist/cjs/util/compilable.d.ts +1 -0
  138. package/dist/cjs/util/compilable.js +6 -0
  139. package/dist/cjs/util/explainable.d.ts +35 -0
  140. package/dist/cjs/util/log.d.ts +2 -0
  141. package/dist/cjs/util/object-utils.js +1 -1
  142. package/dist/cjs/util/streamable.d.ts +29 -0
  143. package/dist/cjs/util/streamable.js +2 -0
  144. package/dist/cjs/util/type-utils.d.ts +1 -0
  145. package/dist/esm/dialect/mysql/mysql-adapter.js +2 -2
  146. package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -1
  147. package/dist/esm/dialect/mysql/mysql-driver.js +1 -1
  148. package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
  149. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -0
  150. package/dist/esm/dialect/sqlite/sqlite-dialect.js +1 -0
  151. package/dist/esm/driver/runtime-driver.js +4 -2
  152. package/dist/esm/expression/expression-builder.d.ts +386 -0
  153. package/dist/esm/expression/expression-builder.js +88 -0
  154. package/dist/esm/expression/expression-wrapper.d.ts +92 -0
  155. package/dist/esm/expression/expression-wrapper.js +50 -0
  156. package/dist/esm/expression/expression.d.ts +1 -1
  157. package/dist/esm/helpers/postgres.d.ts +133 -0
  158. package/dist/esm/helpers/postgres.js +136 -0
  159. package/dist/esm/index.d.ts +4 -3
  160. package/dist/esm/index.js +2 -1
  161. package/dist/esm/kysely.d.ts +10 -0
  162. package/dist/esm/kysely.js +13 -2
  163. package/dist/esm/migration/file-migration-provider.d.ts +5 -2
  164. package/dist/esm/migration/migrator.d.ts +5 -2
  165. package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -3
  166. package/dist/esm/operation-node/create-index-node.d.ts +2 -0
  167. package/dist/esm/operation-node/delete-query-node.d.ts +0 -1
  168. package/dist/esm/operation-node/delete-query-node.js +0 -6
  169. package/dist/esm/operation-node/function-node.d.ts +13 -0
  170. package/dist/esm/operation-node/function-node.js +17 -0
  171. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  172. package/dist/esm/operation-node/operation-node-transformer.js +9 -0
  173. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  174. package/dist/esm/operation-node/operation-node-visitor.js +1 -0
  175. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  176. package/dist/esm/operation-node/operator-node.d.ts +13 -2
  177. package/dist/esm/operation-node/operator-node.js +34 -3
  178. package/dist/esm/operation-node/query-node.d.ts +25 -8
  179. package/dist/esm/operation-node/query-node.js +9 -2
  180. package/dist/esm/operation-node/select-query-node.d.ts +0 -1
  181. package/dist/esm/operation-node/select-query-node.js +0 -6
  182. package/dist/esm/operation-node/update-query-node.d.ts +0 -1
  183. package/dist/esm/operation-node/update-query-node.js +0 -6
  184. package/dist/esm/parser/binary-operation-parser.d.ts +9 -10
  185. package/dist/esm/parser/binary-operation-parser.js +85 -37
  186. package/dist/esm/parser/coalesce-parser.d.ts +0 -2
  187. package/dist/esm/parser/coalesce-parser.js +1 -7
  188. package/dist/esm/parser/expression-parser.d.ts +7 -3
  189. package/dist/esm/parser/expression-parser.js +3 -3
  190. package/dist/esm/parser/group-by-parser.d.ts +3 -2
  191. package/dist/esm/parser/group-by-parser.js +3 -0
  192. package/dist/esm/parser/insert-values-parser.d.ts +4 -1
  193. package/dist/esm/parser/insert-values-parser.js +18 -12
  194. package/dist/esm/parser/join-parser.js +2 -2
  195. package/dist/esm/parser/parse-utils.d.ts +0 -2
  196. package/dist/esm/parser/parse-utils.js +0 -6
  197. package/dist/esm/parser/returning-parser.d.ts +2 -1
  198. package/dist/esm/parser/select-parser.d.ts +5 -13
  199. package/dist/esm/parser/select-parser.js +7 -3
  200. package/dist/esm/parser/table-parser.d.ts +5 -3
  201. package/dist/esm/parser/unary-operation-parser.d.ts +5 -2
  202. package/dist/esm/parser/unary-operation-parser.js +8 -8
  203. package/dist/esm/parser/update-set-parser.d.ts +4 -1
  204. package/dist/esm/parser/update-set-parser.js +7 -2
  205. package/dist/esm/parser/value-parser.d.ts +5 -0
  206. package/dist/esm/parser/value-parser.js +1 -3
  207. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
  208. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  209. package/dist/esm/query-builder/aggregate-function-builder.d.ts +40 -113
  210. package/dist/esm/query-builder/aggregate-function-builder.js +24 -64
  211. package/dist/esm/query-builder/delete-query-builder.d.ts +220 -201
  212. package/dist/esm/query-builder/delete-query-builder.js +24 -30
  213. package/dist/esm/query-builder/delete-result.js +3 -0
  214. package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +62 -0
  215. package/dist/esm/query-builder/deprecated-having-expression-builder.js +2 -0
  216. package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +62 -0
  217. package/dist/esm/query-builder/deprecated-on-expression-builder.js +2 -0
  218. package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +62 -0
  219. package/dist/esm/query-builder/deprecated-where-expression-builder.js +2 -0
  220. package/dist/esm/query-builder/function-module.d.ts +40 -12
  221. package/dist/esm/query-builder/function-module.js +42 -328
  222. package/dist/esm/query-builder/having-interface.d.ts +19 -16
  223. package/dist/esm/query-builder/insert-query-builder.d.ts +75 -26
  224. package/dist/esm/query-builder/insert-query-builder.js +25 -33
  225. package/dist/esm/query-builder/insert-result.js +3 -0
  226. package/dist/esm/query-builder/join-builder.d.ts +23 -26
  227. package/dist/esm/query-builder/join-builder.js +18 -23
  228. package/dist/esm/query-builder/no-result-error.d.ts +1 -0
  229. package/dist/esm/query-builder/no-result-error.js +3 -0
  230. package/dist/esm/query-builder/on-conflict-builder.d.ts +158 -276
  231. package/dist/esm/query-builder/on-conflict-builder.js +54 -38
  232. package/dist/esm/query-builder/over-builder.d.ts +5 -0
  233. package/dist/esm/query-builder/over-builder.js +7 -0
  234. package/dist/esm/query-builder/returning-interface.d.ts +2 -2
  235. package/dist/esm/query-builder/select-query-builder.d.ts +148 -237
  236. package/dist/esm/query-builder/select-query-builder.js +337 -82
  237. package/dist/esm/query-builder/update-query-builder.d.ts +145 -213
  238. package/dist/esm/query-builder/update-query-builder.js +25 -119
  239. package/dist/esm/query-builder/update-result.js +3 -0
  240. package/dist/esm/query-builder/where-interface.d.ts +71 -184
  241. package/dist/esm/query-compiler/default-query-compiler.d.ts +3 -0
  242. package/dist/esm/query-compiler/default-query-compiler.js +17 -1
  243. package/dist/esm/query-creator.d.ts +9 -2
  244. package/dist/esm/query-creator.js +1 -24
  245. package/dist/esm/query-executor/query-executor.d.ts +3 -3
  246. package/dist/esm/raw-builder/raw-builder.d.ts +5 -3
  247. package/dist/esm/raw-builder/raw-builder.js +13 -7
  248. package/dist/esm/raw-builder/sql.d.ts +17 -9
  249. package/dist/esm/raw-builder/sql.js +8 -2
  250. package/dist/esm/schema/alter-column-builder.d.ts +5 -0
  251. package/dist/esm/schema/alter-column-builder.js +7 -0
  252. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
  253. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
  254. package/dist/esm/schema/alter-table-drop-constraint-builder.d.ts +5 -0
  255. package/dist/esm/schema/alter-table-drop-constraint-builder.js +7 -0
  256. package/dist/esm/schema/column-definition-builder.d.ts +6 -1
  257. package/dist/esm/schema/column-definition-builder.js +8 -1
  258. package/dist/esm/schema/create-index-builder.d.ts +51 -9
  259. package/dist/esm/schema/create-index-builder.js +17 -0
  260. package/dist/esm/schema/create-schema-builder.d.ts +5 -0
  261. package/dist/esm/schema/create-schema-builder.js +7 -0
  262. package/dist/esm/schema/create-table-builder.d.ts +3 -1
  263. package/dist/esm/schema/create-table-builder.js +3 -1
  264. package/dist/esm/schema/create-type-builder.d.ts +5 -0
  265. package/dist/esm/schema/create-type-builder.js +7 -0
  266. package/dist/esm/schema/create-view-builder.d.ts +5 -0
  267. package/dist/esm/schema/create-view-builder.js +7 -0
  268. package/dist/esm/schema/drop-index-builder.d.ts +5 -0
  269. package/dist/esm/schema/drop-index-builder.js +7 -0
  270. package/dist/esm/schema/drop-schema-builder.d.ts +5 -0
  271. package/dist/esm/schema/drop-schema-builder.js +7 -0
  272. package/dist/esm/schema/drop-table-builder.d.ts +5 -0
  273. package/dist/esm/schema/drop-table-builder.js +7 -0
  274. package/dist/esm/schema/drop-type-builder.d.ts +5 -0
  275. package/dist/esm/schema/drop-type-builder.js +7 -0
  276. package/dist/esm/schema/drop-view-builder.d.ts +5 -0
  277. package/dist/esm/schema/drop-view-builder.js +7 -0
  278. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +5 -0
  279. package/dist/esm/schema/foreign-key-constraint-builder.js +7 -0
  280. package/dist/esm/util/compilable.d.ts +1 -0
  281. package/dist/esm/util/compilable.js +4 -1
  282. package/dist/esm/util/explainable.d.ts +35 -0
  283. package/dist/esm/util/log.d.ts +2 -0
  284. package/dist/esm/util/object-utils.js +1 -1
  285. package/dist/esm/util/streamable.d.ts +29 -0
  286. package/dist/esm/util/streamable.js +2 -0
  287. package/dist/esm/util/type-utils.d.ts +1 -0
  288. package/helpers/postgres.d.ts +1 -0
  289. package/helpers/postgres.js +1 -0
  290. package/package.json +20 -9
  291. package/dist/cjs/query-builder/expression-builder.d.ts +0 -126
  292. package/dist/cjs/query-builder/expression-builder.js +0 -107
  293. package/dist/esm/query-builder/expression-builder.d.ts +0 -126
  294. package/dist/esm/query-builder/expression-builder.js +0 -104
@@ -15,14 +15,13 @@ const expression_parser_js_1 = require("../parser/expression-parser.js");
15
15
  const column_node_js_1 = require("../operation-node/column-node.js");
16
16
  const on_conflict_builder_js_1 = require("./on-conflict-builder.js");
17
17
  const on_conflict_node_js_1 = require("../operation-node/on-conflict-node.js");
18
- const explain_node_js_1 = require("../operation-node/explain-node.js");
19
18
  class InsertQueryBuilder {
20
19
  #props;
21
20
  constructor(props) {
22
21
  this.#props = (0, object_utils_js_1.freeze)(props);
23
22
  }
24
- values(args) {
25
- const [columns, values] = (0, insert_values_parser_js_1.parseInsertObjectOrList)(args);
23
+ values(insert) {
24
+ const [columns, values] = (0, insert_values_parser_js_1.parseInsertExpression)(insert);
26
25
  return new InsertQueryBuilder({
27
26
  ...this.#props,
28
27
  queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
@@ -295,18 +294,18 @@ class InsertQueryBuilder {
295
294
  * .onDuplicateKeyUpdate({ species: 'hamster' })
296
295
  * ```
297
296
  */
298
- onDuplicateKeyUpdate(updates) {
297
+ onDuplicateKeyUpdate(update) {
299
298
  return new InsertQueryBuilder({
300
299
  ...this.#props,
301
300
  queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
302
- onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateObject)(updates)),
301
+ onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateExpression)(update)),
303
302
  }),
304
303
  });
305
304
  }
306
305
  returning(selection) {
307
306
  return new InsertQueryBuilder({
308
307
  ...this.#props,
309
- queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(selection)),
308
+ queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectArg)(selection)),
310
309
  });
311
310
  }
312
311
  returningAll() {
@@ -316,7 +315,8 @@ class InsertQueryBuilder {
316
315
  });
317
316
  }
318
317
  /**
319
- * Simply calls the given function passing `this` as the only argument.
318
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
319
+ * what the provided function returns.
320
320
  *
321
321
  * If you want to conditionally call a method on `this`, see
322
322
  * the {@link $if} method.
@@ -442,7 +442,7 @@ class InsertQueryBuilder {
442
442
  * )
443
443
  * .with('new_pet', (qb) => qb
444
444
  * .insertInto('pet')
445
- * .values({ owner_id: (eb) => eb.selectFrom('new_person').select('id'), ...pet })
445
+ * .values((eb) => ({ owner_id: eb.selectFrom('new_person').select('id'), ...pet }))
446
446
  * .returning(['name as pet_name', 'species'])
447
447
  * .$assertType<{ pet_name: string, species: Species }>()
448
448
  * )
@@ -506,38 +506,30 @@ class InsertQueryBuilder {
506
506
  * the query returned no result.
507
507
  *
508
508
  * By default an instance of {@link NoResultError} is thrown, but you can
509
- * provide a custom error class as the only argument to throw a different
509
+ * provide a custom error class, or callback as the only argument to throw a different
510
510
  * error.
511
511
  */
512
512
  async executeTakeFirstOrThrow(errorConstructor = no_result_error_js_1.NoResultError) {
513
513
  const result = await this.executeTakeFirst();
514
514
  if (result === undefined) {
515
- throw new errorConstructor(this.toOperationNode());
515
+ const error = (0, no_result_error_js_1.isNoResultErrorConstructor)(errorConstructor)
516
+ ? new errorConstructor(this.toOperationNode())
517
+ : errorConstructor(this.toOperationNode());
518
+ throw error;
516
519
  }
517
520
  return result;
518
521
  }
519
- /**
520
- * Executes query with `explain` statement before `insert` keyword.
521
- *
522
- * ```ts
523
- * const explained = await db
524
- * .insertInto('person')
525
- * .values(values)
526
- * .explain('json')
527
- * ```
528
- *
529
- * The generated SQL (MySQL):
530
- *
531
- * ```sql
532
- * explain format=json insert into `person` (`id`, `first_name`, `last_name`) values (?, ?, ?) (?, ?, ?)
533
- * ```
534
- */
522
+ async *stream(chunkSize = 100) {
523
+ const compiledQuery = this.compile();
524
+ const stream = this.#props.executor.stream(compiledQuery, chunkSize, this.#props.queryId);
525
+ for await (const item of stream) {
526
+ yield* item.rows;
527
+ }
528
+ }
535
529
  async explain(format, options) {
536
530
  const builder = new InsertQueryBuilder({
537
531
  ...this.#props,
538
- queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
539
- explain: explain_node_js_1.ExplainNode.create(format, options?.toOperationNode()),
540
- }),
532
+ queryNode: query_node_js_1.QueryNode.cloneWithExplain(this.#props.queryNode, format, options),
541
533
  });
542
534
  return await builder.execute();
543
535
  }
@@ -45,3 +45,6 @@ class InsertResult {
45
45
  }
46
46
  }
47
47
  exports.InsertResult = InsertResult;
48
+ for (const property of ['insertId', 'numInsertedOrUpdatedRows']) {
49
+ Object.defineProperty(InsertResult.prototype, property, { enumerable: true });
50
+ }
@@ -4,6 +4,8 @@ import { OperationNodeSource } from '../operation-node/operation-node-source.js'
4
4
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
5
5
  import { ReferenceExpression } from '../parser/reference-parser.js';
6
6
  import { ExistsExpression } from '../parser/unary-operation-parser.js';
7
+ import { SqlBool } from '../util/type-utils.js';
8
+ import { OnExpressionBuilder } from './deprecated-on-expression-builder.js';
7
9
  export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
8
10
  #private;
9
11
  constructor(props: JoinBuilderProps);
@@ -14,16 +16,19 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
14
16
  * See {@link WhereInterface.where} for documentation and examples.
15
17
  */
16
18
  on<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
17
- on(grouper: (qb: JoinBuilder<DB, TB>) => JoinBuilder<DB, TB>): JoinBuilder<DB, TB>;
19
+ on(factory: OnExpressionFactory<DB, TB>): JoinBuilder<DB, TB>;
18
20
  on(expression: Expression<any>): JoinBuilder<DB, TB>;
19
21
  /**
20
- * Just like {@link WhereInterface.orWhere} but adds an item to the join's
21
- * `on` clause instead.
22
- *
23
- * See {@link WhereInterface.orWhere} for documentation and examples.
22
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
24
23
  */
25
24
  orOn<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
26
- orOn(grouper: (qb: JoinBuilder<DB, TB>) => JoinBuilder<DB, TB>): JoinBuilder<DB, TB>;
25
+ /**
26
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
27
+ */
28
+ orOn(factory: OnExpressionFactory<DB, TB>): JoinBuilder<DB, TB>;
29
+ /**
30
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
31
+ */
27
32
  orOn(expression: Expression<any>): JoinBuilder<DB, TB>;
28
33
  /**
29
34
  * Just like {@link WhereInterface.whereRef} but adds an item to the join's
@@ -33,46 +38,38 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
33
38
  */
34
39
  onRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
35
40
  /**
36
- * Just like {@link WhereInterface.orWhereRef} but adds an item to the join's
37
- * `on` clause instead.
38
- *
39
- * See {@link WhereInterface.orWhereRef} for documentation and examples.
41
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
40
42
  */
41
43
  orOnRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
42
44
  /**
43
- * Just like {@link WhereInterface.whereExists} but adds an item to the join's
44
- * `on` clause instead.
45
- *
46
- * See {@link WhereInterface.whereExists} for documentation and examples.
45
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
47
46
  */
48
47
  onExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
49
48
  /**
50
- * Just like {@link WhereInterface.whereNotExists} but adds an item to the join's
51
- * `on` clause instead.
52
- *
53
- * See {@link WhereInterface.whereNotExists} for documentation and examples.
49
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
54
50
  */
55
51
  onNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
56
52
  /**
57
- * Just like {@link WhereInterface.orWhereExists} but adds an item to the join's
58
- * `on` clause instead.
59
- *
60
- * See {@link WhereInterface.orWhereExists} for documentation and examples.
53
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
61
54
  */
62
55
  orOnExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
63
56
  /**
64
- * Just like {@link WhereInterface.orWhereNotExists} but adds an item to the join's
65
- * `on` clause instead.
66
- *
67
- * See {@link WhereInterface.orWhereNotExists} for documentation and examples.
57
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
68
58
  */
69
59
  orOnNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
70
60
  /**
71
61
  * Adds `on true`.
72
62
  */
73
63
  onTrue(): JoinBuilder<DB, TB>;
64
+ /**
65
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
66
+ * what the provided function returns.
67
+ */
68
+ $call<T>(func: (qb: this) => T): T;
74
69
  toOperationNode(): JoinNode;
75
70
  }
76
71
  export interface JoinBuilderProps {
77
72
  readonly joinNode: JoinNode;
78
73
  }
74
+ declare type OnExpressionFactory<DB, TB extends keyof DB> = (eb: OnExpressionBuilder<DB, TB>) => Expression<SqlBool> | OnExpressionBuilder<DB, TB>;
75
+ export {};
@@ -18,6 +18,9 @@ class JoinBuilder {
18
18
  joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, binary_operation_parser_js_1.parseOn)(args)),
19
19
  });
20
20
  }
21
+ /**
22
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
23
+ */
21
24
  orOn(...args) {
22
25
  return new JoinBuilder({
23
26
  ...this.#props,
@@ -33,26 +36,20 @@ class JoinBuilder {
33
36
  onRef(lhs, op, rhs) {
34
37
  return new JoinBuilder({
35
38
  ...this.#props,
36
- joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, binary_operation_parser_js_1.parseReferentialFilter)(lhs, op, rhs)),
39
+ joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
37
40
  });
38
41
  }
39
42
  /**
40
- * Just like {@link WhereInterface.orWhereRef} but adds an item to the join's
41
- * `on` clause instead.
42
- *
43
- * See {@link WhereInterface.orWhereRef} for documentation and examples.
43
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
44
44
  */
45
45
  orOnRef(lhs, op, rhs) {
46
46
  return new JoinBuilder({
47
47
  ...this.#props,
48
- joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, binary_operation_parser_js_1.parseReferentialFilter)(lhs, op, rhs)),
48
+ joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, binary_operation_parser_js_1.parseReferentialComparison)(lhs, op, rhs)),
49
49
  });
50
50
  }
51
51
  /**
52
- * Just like {@link WhereInterface.whereExists} but adds an item to the join's
53
- * `on` clause instead.
54
- *
55
- * See {@link WhereInterface.whereExists} for documentation and examples.
52
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
56
53
  */
57
54
  onExists(arg) {
58
55
  return new JoinBuilder({
@@ -61,10 +58,7 @@ class JoinBuilder {
61
58
  });
62
59
  }
63
60
  /**
64
- * Just like {@link WhereInterface.whereNotExists} but adds an item to the join's
65
- * `on` clause instead.
66
- *
67
- * See {@link WhereInterface.whereNotExists} for documentation and examples.
61
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
68
62
  */
69
63
  onNotExists(arg) {
70
64
  return new JoinBuilder({
@@ -73,10 +67,7 @@ class JoinBuilder {
73
67
  });
74
68
  }
75
69
  /**
76
- * Just like {@link WhereInterface.orWhereExists} but adds an item to the join's
77
- * `on` clause instead.
78
- *
79
- * See {@link WhereInterface.orWhereExists} for documentation and examples.
70
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
80
71
  */
81
72
  orOnExists(arg) {
82
73
  return new JoinBuilder({
@@ -85,10 +76,7 @@ class JoinBuilder {
85
76
  });
86
77
  }
87
78
  /**
88
- * Just like {@link WhereInterface.orWhereNotExists} but adds an item to the join's
89
- * `on` clause instead.
90
- *
91
- * See {@link WhereInterface.orWhereNotExists} for documentation and examples.
79
+ * @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
92
80
  */
93
81
  orOnNotExists(arg) {
94
82
  return new JoinBuilder({
@@ -105,6 +93,13 @@ class JoinBuilder {
105
93
  joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, raw_node_js_1.RawNode.createWithSql('true')),
106
94
  });
107
95
  }
96
+ /**
97
+ * Simply calls the provided function passing `this` as the only argument. `$call` returns
98
+ * what the provided function returns.
99
+ */
100
+ $call(func) {
101
+ return func(this);
102
+ }
108
103
  toOperationNode() {
109
104
  return this.#props.joinNode;
110
105
  }
@@ -7,3 +7,4 @@ export declare class NoResultError extends Error {
7
7
  readonly node: QueryNode;
8
8
  constructor(node: QueryNode);
9
9
  }
10
+ export declare function isNoResultErrorConstructor(fn: NoResultErrorConstructor | ((node: QueryNode) => Error)): fn is NoResultErrorConstructor;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NoResultError = void 0;
3
+ exports.isNoResultErrorConstructor = exports.NoResultError = void 0;
4
4
  class NoResultError extends Error {
5
5
  /**
6
6
  * The operation node tree of the query that was executed.
@@ -12,3 +12,7 @@ class NoResultError extends Error {
12
12
  }
13
13
  }
14
14
  exports.NoResultError = NoResultError;
15
+ function isNoResultErrorConstructor(fn) {
16
+ return Object.prototype.hasOwnProperty.call(fn, 'prototype');
17
+ }
18
+ exports.isNoResultErrorConstructor = isNoResultErrorConstructor;