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