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,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExpressionBuilder = void 0;
4
- const select_query_builder_js_1 = require("./select-query-builder.js");
5
- const select_query_node_js_1 = require("../operation-node/select-query-node.js");
6
- const table_parser_js_1 = require("../parser/table-parser.js");
7
- const with_schema_plugin_js_1 = require("../plugin/with-schema/with-schema-plugin.js");
8
- const query_id_js_1 = require("../util/query-id.js");
9
- const function_module_js_1 = require("./function-module.js");
10
- const reference_parser_js_1 = require("../parser/reference-parser.js");
11
- const raw_builder_js_1 = require("../raw-builder/raw-builder.js");
12
- const object_utils_js_1 = require("../util/object-utils.js");
13
- const raw_node_js_1 = require("../operation-node/raw-node.js");
14
- class ExpressionBuilder {
15
- #props;
16
- constructor(props) {
17
- this.#props = (0, object_utils_js_1.freeze)(props);
18
- }
19
- /**
20
- * Returns a {@link FunctionModule} that can be used to write type safe function
21
- * calls.
22
- *
23
- * The difference between this and {@link Kysely.fn} is that this one is more
24
- * type safe. You can only refer to columns visible to the part of the query
25
- * you are building. {@link Kysely.fn} allows you to refer to columns in any
26
- * table of the database even if it doesn't produce valid SQL.
27
- *
28
- * ```ts
29
- * await db.selectFrom('person')
30
- * .innerJoin('pet', 'pet.owner_id', 'person.id')
31
- * .select([
32
- * 'person.id',
33
- * (qb) => qb.fn.count('pet.id').as('pet_count')
34
- * ])
35
- * .groupBy('person.id')
36
- * .having(count('pet.id'), '>', 10)
37
- * .execute()
38
- * ```
39
- *
40
- * The generated SQL (PostgreSQL):
41
- *
42
- * ```sql
43
- * select "person"."id", count("pet"."id") as "pet_count"
44
- * from "person"
45
- * inner join "pet" on "pet"."owner_id" = "person"."id"
46
- * group by "person"."id"
47
- * having count("pet"."id") > $1
48
- * ```
49
- */
50
- get fn() {
51
- return new function_module_js_1.FunctionModule();
52
- }
53
- selectFrom(table) {
54
- return new select_query_builder_js_1.SelectQueryBuilder({
55
- queryId: (0, query_id_js_1.createQueryId)(),
56
- executor: this.#props.executor,
57
- queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(table)),
58
- });
59
- }
60
- /**
61
- * See {@link QueryCreator.withSchema}
62
- */
63
- withSchema(schema) {
64
- return new ExpressionBuilder({
65
- ...this.#props,
66
- executor: this.#props.executor.withPluginAtFront(new with_schema_plugin_js_1.WithSchemaPlugin(schema)),
67
- });
68
- }
69
- /**
70
- * This can be used to reference columns.
71
- *
72
- * ### Examples
73
- *
74
- * In the next example we use the `ref` method to reference
75
- * columns of the virtual table `excluded` in a type-safe way
76
- * to create an upsert operation:
77
- *
78
- * ```ts
79
- * db.insertInto('person')
80
- * .values(person)
81
- * .onConflict(oc => oc
82
- * .column('id')
83
- * .doUpdateSet({
84
- * first_name: (eb) => eb.ref('excluded.first_name'),
85
- * last_name: (eb) => eb.ref('excluded.last_name')
86
- * })
87
- * )
88
- * ```
89
- *
90
- * In the next example we use `ref` in a raw sql expression. Unless you
91
- * want to be as type-safe as possible, this is probably overkill:
92
- *
93
- * ```ts
94
- * db.update('pet').set({
95
- * name: (eb) => sql`concat(${eb.ref('pet.name')}, ${suffix})`
96
- * })
97
- * ```
98
- */
99
- ref(reference) {
100
- return new raw_builder_js_1.RawBuilder({
101
- queryId: (0, query_id_js_1.createQueryId)(),
102
- plugins: this.#props.executor.plugins,
103
- rawNode: raw_node_js_1.RawNode.createWithChild((0, reference_parser_js_1.parseStringReference)(reference)),
104
- });
105
- }
106
- }
107
- exports.ExpressionBuilder = ExpressionBuilder;
@@ -1,126 +0,0 @@
1
- import { SelectQueryBuilder } from './select-query-builder.js';
2
- import { TableExpression, From, FromTables } from '../parser/table-parser.js';
3
- import { FunctionModule } from './function-module.js';
4
- import { ExtractTypeFromReferenceExpression, StringReference } from '../parser/reference-parser.js';
5
- import { RawBuilder } from '../raw-builder/raw-builder.js';
6
- import { QueryExecutor } from '../query-executor/query-executor.js';
7
- export declare class ExpressionBuilder<DB, TB extends keyof DB> {
8
- #private;
9
- constructor(props: ExpressionBuilderProps);
10
- /**
11
- * Returns a {@link FunctionModule} that can be used to write type safe function
12
- * calls.
13
- *
14
- * The difference between this and {@link Kysely.fn} is that this one is more
15
- * type safe. You can only refer to columns visible to the part of the query
16
- * you are building. {@link Kysely.fn} allows you to refer to columns in any
17
- * table of the database even if it doesn't produce valid SQL.
18
- *
19
- * ```ts
20
- * await db.selectFrom('person')
21
- * .innerJoin('pet', 'pet.owner_id', 'person.id')
22
- * .select([
23
- * 'person.id',
24
- * (qb) => qb.fn.count('pet.id').as('pet_count')
25
- * ])
26
- * .groupBy('person.id')
27
- * .having(count('pet.id'), '>', 10)
28
- * .execute()
29
- * ```
30
- *
31
- * The generated SQL (PostgreSQL):
32
- *
33
- * ```sql
34
- * select "person"."id", count("pet"."id") as "pet_count"
35
- * from "person"
36
- * inner join "pet" on "pet"."owner_id" = "person"."id"
37
- * group by "person"."id"
38
- * having count("pet"."id") > $1
39
- * ```
40
- */
41
- get fn(): FunctionModule<DB, TB>;
42
- /**
43
- * Creates a subquery.
44
- *
45
- * The query builder returned by this method is typed in a way that you can refer to
46
- * all tables of the parent query in addition to the subquery's tables.
47
- *
48
- * This method accepts all the same inputs as {@link QueryCreator.selectFrom}.
49
- *
50
- * ### Examples
51
- *
52
- * This example shows that you can refer to both `pet.owner_id` and `person.id`
53
- * columns from the subquery. This is needed to be able to create correlated
54
- * subqueries:
55
- *
56
- * ```ts
57
- * const result = await db.selectFrom('pet')
58
- * .select([
59
- * 'pet.name',
60
- * (qb) => qb.selectFrom('person')
61
- * .whereRef('person.id', '=', 'pet.owner_id')
62
- * .select('person.first_name')
63
- * .as('owner_name')
64
- * ])
65
- * .execute()
66
- *
67
- * console.log(result[0].owner_name)
68
- * ```
69
- *
70
- * The generated SQL (PostgreSQL):
71
- *
72
- * ```sql
73
- * select
74
- * "pet"."name",
75
- * ( select "person"."first_name"
76
- * from "person"
77
- * where "person"."id" = "pet"."owner_id"
78
- * ) as "owner_name"
79
- * from "pet"
80
- * ```
81
- *
82
- * You can use a normal query in place of `(qb) => qb.selectFrom(...)` but in
83
- * that case Kysely typings wouldn't allow you to reference `pet.owner_id`
84
- * because `pet` is not joined to that query.
85
- */
86
- selectFrom<TE extends TableExpression<DB, TB>>(from: TE[]): SelectQueryBuilder<From<DB, TE>, FromTables<DB, TB, TE>, {}>;
87
- selectFrom<TE extends TableExpression<DB, TB>>(from: TE): SelectQueryBuilder<From<DB, TE>, FromTables<DB, TB, TE>, {}>;
88
- /**
89
- * See {@link QueryCreator.withSchema}
90
- */
91
- withSchema(schema: string): ExpressionBuilder<DB, TB>;
92
- /**
93
- * This can be used to reference columns.
94
- *
95
- * ### Examples
96
- *
97
- * In the next example we use the `ref` method to reference
98
- * columns of the virtual table `excluded` in a type-safe way
99
- * to create an upsert operation:
100
- *
101
- * ```ts
102
- * db.insertInto('person')
103
- * .values(person)
104
- * .onConflict(oc => oc
105
- * .column('id')
106
- * .doUpdateSet({
107
- * first_name: (eb) => eb.ref('excluded.first_name'),
108
- * last_name: (eb) => eb.ref('excluded.last_name')
109
- * })
110
- * )
111
- * ```
112
- *
113
- * In the next example we use `ref` in a raw sql expression. Unless you
114
- * want to be as type-safe as possible, this is probably overkill:
115
- *
116
- * ```ts
117
- * db.update('pet').set({
118
- * name: (eb) => sql`concat(${eb.ref('pet.name')}, ${suffix})`
119
- * })
120
- * ```
121
- */
122
- ref<RE extends StringReference<DB, TB>>(reference: RE): RawBuilder<ExtractTypeFromReferenceExpression<DB, TB, RE>>;
123
- }
124
- export interface ExpressionBuilderProps {
125
- readonly executor: QueryExecutor;
126
- }
@@ -1,104 +0,0 @@
1
- /// <reference types="./expression-builder.d.ts" />
2
- import { SelectQueryBuilder } from './select-query-builder.js';
3
- import { SelectQueryNode } from '../operation-node/select-query-node.js';
4
- import { parseTableExpressionOrList, } from '../parser/table-parser.js';
5
- import { WithSchemaPlugin } from '../plugin/with-schema/with-schema-plugin.js';
6
- import { createQueryId } from '../util/query-id.js';
7
- import { FunctionModule } from './function-module.js';
8
- import { parseStringReference, } from '../parser/reference-parser.js';
9
- import { RawBuilder } from '../raw-builder/raw-builder.js';
10
- import { freeze } from '../util/object-utils.js';
11
- import { RawNode } from '../operation-node/raw-node.js';
12
- export class ExpressionBuilder {
13
- #props;
14
- constructor(props) {
15
- this.#props = freeze(props);
16
- }
17
- /**
18
- * Returns a {@link FunctionModule} that can be used to write type safe function
19
- * calls.
20
- *
21
- * The difference between this and {@link Kysely.fn} is that this one is more
22
- * type safe. You can only refer to columns visible to the part of the query
23
- * you are building. {@link Kysely.fn} allows you to refer to columns in any
24
- * table of the database even if it doesn't produce valid SQL.
25
- *
26
- * ```ts
27
- * await db.selectFrom('person')
28
- * .innerJoin('pet', 'pet.owner_id', 'person.id')
29
- * .select([
30
- * 'person.id',
31
- * (qb) => qb.fn.count('pet.id').as('pet_count')
32
- * ])
33
- * .groupBy('person.id')
34
- * .having(count('pet.id'), '>', 10)
35
- * .execute()
36
- * ```
37
- *
38
- * The generated SQL (PostgreSQL):
39
- *
40
- * ```sql
41
- * select "person"."id", count("pet"."id") as "pet_count"
42
- * from "person"
43
- * inner join "pet" on "pet"."owner_id" = "person"."id"
44
- * group by "person"."id"
45
- * having count("pet"."id") > $1
46
- * ```
47
- */
48
- get fn() {
49
- return new FunctionModule();
50
- }
51
- selectFrom(table) {
52
- return new SelectQueryBuilder({
53
- queryId: createQueryId(),
54
- executor: this.#props.executor,
55
- queryNode: SelectQueryNode.create(parseTableExpressionOrList(table)),
56
- });
57
- }
58
- /**
59
- * See {@link QueryCreator.withSchema}
60
- */
61
- withSchema(schema) {
62
- return new ExpressionBuilder({
63
- ...this.#props,
64
- executor: this.#props.executor.withPluginAtFront(new WithSchemaPlugin(schema)),
65
- });
66
- }
67
- /**
68
- * This can be used to reference columns.
69
- *
70
- * ### Examples
71
- *
72
- * In the next example we use the `ref` method to reference
73
- * columns of the virtual table `excluded` in a type-safe way
74
- * to create an upsert operation:
75
- *
76
- * ```ts
77
- * db.insertInto('person')
78
- * .values(person)
79
- * .onConflict(oc => oc
80
- * .column('id')
81
- * .doUpdateSet({
82
- * first_name: (eb) => eb.ref('excluded.first_name'),
83
- * last_name: (eb) => eb.ref('excluded.last_name')
84
- * })
85
- * )
86
- * ```
87
- *
88
- * In the next example we use `ref` in a raw sql expression. Unless you
89
- * want to be as type-safe as possible, this is probably overkill:
90
- *
91
- * ```ts
92
- * db.update('pet').set({
93
- * name: (eb) => sql`concat(${eb.ref('pet.name')}, ${suffix})`
94
- * })
95
- * ```
96
- */
97
- ref(reference) {
98
- return new RawBuilder({
99
- queryId: createQueryId(),
100
- plugins: this.#props.executor.plugins,
101
- rawNode: RawNode.createWithChild(parseStringReference(reference)),
102
- });
103
- }
104
- }