drizzle-orm 0.43.0 → 0.43.1-47c6ad4

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 (345) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +4 -3
  3. package/column-builder.d.ts +4 -3
  4. package/column-builder.js.map +1 -1
  5. package/mssql-core/alias.cjs +32 -0
  6. package/mssql-core/alias.cjs.map +1 -0
  7. package/mssql-core/alias.d.cts +4 -0
  8. package/mssql-core/alias.d.ts +4 -0
  9. package/mssql-core/alias.js +8 -0
  10. package/mssql-core/alias.js.map +1 -0
  11. package/mssql-core/checks.cjs +58 -0
  12. package/mssql-core/checks.cjs.map +1 -0
  13. package/mssql-core/checks.d.cts +18 -0
  14. package/mssql-core/checks.d.ts +18 -0
  15. package/mssql-core/checks.js +32 -0
  16. package/mssql-core/checks.js.map +1 -0
  17. package/mssql-core/columns/all.cjs +72 -0
  18. package/mssql-core/columns/all.cjs.map +1 -0
  19. package/mssql-core/columns/all.d.cts +43 -0
  20. package/mssql-core/columns/all.d.ts +43 -0
  21. package/mssql-core/columns/all.js +48 -0
  22. package/mssql-core/columns/all.js.map +1 -0
  23. package/mssql-core/columns/bigint.cjs +67 -0
  24. package/mssql-core/columns/bigint.cjs.map +1 -0
  25. package/mssql-core/columns/bigint.d.cts +33 -0
  26. package/mssql-core/columns/bigint.d.ts +33 -0
  27. package/mssql-core/columns/bigint.js +41 -0
  28. package/mssql-core/columns/bigint.js.map +1 -0
  29. package/mssql-core/columns/binary.cjs +57 -0
  30. package/mssql-core/columns/binary.cjs.map +1 -0
  31. package/mssql-core/columns/binary.d.cts +28 -0
  32. package/mssql-core/columns/binary.d.ts +28 -0
  33. package/mssql-core/columns/binary.js +31 -0
  34. package/mssql-core/columns/binary.js.map +1 -0
  35. package/mssql-core/columns/bit.cjs +54 -0
  36. package/mssql-core/columns/bit.cjs.map +1 -0
  37. package/mssql-core/columns/bit.d.cts +24 -0
  38. package/mssql-core/columns/bit.d.ts +24 -0
  39. package/mssql-core/columns/bit.js +28 -0
  40. package/mssql-core/columns/bit.js.map +1 -0
  41. package/mssql-core/columns/char.cjs +74 -0
  42. package/mssql-core/columns/char.cjs.map +1 -0
  43. package/mssql-core/columns/char.d.cts +37 -0
  44. package/mssql-core/columns/char.d.ts +37 -0
  45. package/mssql-core/columns/char.js +47 -0
  46. package/mssql-core/columns/char.js.map +1 -0
  47. package/mssql-core/columns/common.cjs +117 -0
  48. package/mssql-core/columns/common.cjs.map +1 -0
  49. package/mssql-core/columns/common.d.cts +67 -0
  50. package/mssql-core/columns/common.d.ts +67 -0
  51. package/mssql-core/columns/common.js +90 -0
  52. package/mssql-core/columns/common.js.map +1 -0
  53. package/mssql-core/columns/custom.cjs +75 -0
  54. package/mssql-core/columns/custom.cjs.map +1 -0
  55. package/mssql-core/columns/custom.d.cts +149 -0
  56. package/mssql-core/columns/custom.d.ts +149 -0
  57. package/mssql-core/columns/custom.js +49 -0
  58. package/mssql-core/columns/custom.js.map +1 -0
  59. package/mssql-core/columns/date.cjs +94 -0
  60. package/mssql-core/columns/date.cjs.map +1 -0
  61. package/mssql-core/columns/date.common.cjs +37 -0
  62. package/mssql-core/columns/date.common.cjs.map +1 -0
  63. package/mssql-core/columns/date.common.d.cts +12 -0
  64. package/mssql-core/columns/date.common.d.ts +12 -0
  65. package/mssql-core/columns/date.common.js +13 -0
  66. package/mssql-core/columns/date.common.js.map +1 -0
  67. package/mssql-core/columns/date.d.cts +55 -0
  68. package/mssql-core/columns/date.d.ts +55 -0
  69. package/mssql-core/columns/date.js +66 -0
  70. package/mssql-core/columns/date.js.map +1 -0
  71. package/mssql-core/columns/datetime.cjs +94 -0
  72. package/mssql-core/columns/datetime.cjs.map +1 -0
  73. package/mssql-core/columns/datetime.d.cts +54 -0
  74. package/mssql-core/columns/datetime.d.ts +54 -0
  75. package/mssql-core/columns/datetime.js +66 -0
  76. package/mssql-core/columns/datetime.js.map +1 -0
  77. package/mssql-core/columns/datetime2.cjs +102 -0
  78. package/mssql-core/columns/datetime2.cjs.map +1 -0
  79. package/mssql-core/columns/datetime2.d.cts +54 -0
  80. package/mssql-core/columns/datetime2.d.ts +54 -0
  81. package/mssql-core/columns/datetime2.js +74 -0
  82. package/mssql-core/columns/datetime2.js.map +1 -0
  83. package/mssql-core/columns/datetimeoffset.cjs +102 -0
  84. package/mssql-core/columns/datetimeoffset.cjs.map +1 -0
  85. package/mssql-core/columns/datetimeoffset.d.cts +54 -0
  86. package/mssql-core/columns/datetimeoffset.d.ts +54 -0
  87. package/mssql-core/columns/datetimeoffset.js +74 -0
  88. package/mssql-core/columns/datetimeoffset.js.map +1 -0
  89. package/mssql-core/columns/decimal.cjs +68 -0
  90. package/mssql-core/columns/decimal.cjs.map +1 -0
  91. package/mssql-core/columns/decimal.d.cts +30 -0
  92. package/mssql-core/columns/decimal.d.ts +30 -0
  93. package/mssql-core/columns/decimal.js +42 -0
  94. package/mssql-core/columns/decimal.js.map +1 -0
  95. package/mssql-core/columns/float.cjs +58 -0
  96. package/mssql-core/columns/float.cjs.map +1 -0
  97. package/mssql-core/columns/float.d.cts +28 -0
  98. package/mssql-core/columns/float.d.ts +28 -0
  99. package/mssql-core/columns/float.js +32 -0
  100. package/mssql-core/columns/float.js.map +1 -0
  101. package/mssql-core/columns/index.cjs +63 -0
  102. package/mssql-core/columns/index.cjs.map +1 -0
  103. package/mssql-core/columns/index.d.cts +21 -0
  104. package/mssql-core/columns/index.d.ts +21 -0
  105. package/mssql-core/columns/index.js +22 -0
  106. package/mssql-core/columns/index.js.map +1 -0
  107. package/mssql-core/columns/int.cjs +53 -0
  108. package/mssql-core/columns/int.cjs.map +1 -0
  109. package/mssql-core/columns/int.d.cts +23 -0
  110. package/mssql-core/columns/int.d.ts +23 -0
  111. package/mssql-core/columns/int.js +27 -0
  112. package/mssql-core/columns/int.js.map +1 -0
  113. package/mssql-core/columns/numeric.cjs +68 -0
  114. package/mssql-core/columns/numeric.cjs.map +1 -0
  115. package/mssql-core/columns/numeric.d.cts +27 -0
  116. package/mssql-core/columns/numeric.d.ts +27 -0
  117. package/mssql-core/columns/numeric.js +42 -0
  118. package/mssql-core/columns/numeric.js.map +1 -0
  119. package/mssql-core/columns/real.cjs +53 -0
  120. package/mssql-core/columns/real.cjs.map +1 -0
  121. package/mssql-core/columns/real.d.cts +23 -0
  122. package/mssql-core/columns/real.d.ts +23 -0
  123. package/mssql-core/columns/real.js +27 -0
  124. package/mssql-core/columns/real.js.map +1 -0
  125. package/mssql-core/columns/smallint.cjs +62 -0
  126. package/mssql-core/columns/smallint.cjs.map +1 -0
  127. package/mssql-core/columns/smallint.d.cts +24 -0
  128. package/mssql-core/columns/smallint.d.ts +24 -0
  129. package/mssql-core/columns/smallint.js +36 -0
  130. package/mssql-core/columns/smallint.js.map +1 -0
  131. package/mssql-core/columns/text.cjs +68 -0
  132. package/mssql-core/columns/text.cjs.map +1 -0
  133. package/mssql-core/columns/text.d.cts +45 -0
  134. package/mssql-core/columns/text.d.ts +45 -0
  135. package/mssql-core/columns/text.js +41 -0
  136. package/mssql-core/columns/text.js.map +1 -0
  137. package/mssql-core/columns/time.cjs +90 -0
  138. package/mssql-core/columns/time.cjs.map +1 -0
  139. package/mssql-core/columns/time.d.cts +49 -0
  140. package/mssql-core/columns/time.d.ts +49 -0
  141. package/mssql-core/columns/time.js +62 -0
  142. package/mssql-core/columns/time.js.map +1 -0
  143. package/mssql-core/columns/tinyint.cjs +62 -0
  144. package/mssql-core/columns/tinyint.cjs.map +1 -0
  145. package/mssql-core/columns/tinyint.d.cts +24 -0
  146. package/mssql-core/columns/tinyint.d.ts +24 -0
  147. package/mssql-core/columns/tinyint.js +36 -0
  148. package/mssql-core/columns/tinyint.js.map +1 -0
  149. package/mssql-core/columns/varbinary.cjs +61 -0
  150. package/mssql-core/columns/varbinary.cjs.map +1 -0
  151. package/mssql-core/columns/varbinary.d.cts +27 -0
  152. package/mssql-core/columns/varbinary.d.ts +27 -0
  153. package/mssql-core/columns/varbinary.js +35 -0
  154. package/mssql-core/columns/varbinary.js.map +1 -0
  155. package/mssql-core/columns/varchar.cjs +117 -0
  156. package/mssql-core/columns/varchar.cjs.map +1 -0
  157. package/mssql-core/columns/varchar.d.cts +66 -0
  158. package/mssql-core/columns/varchar.d.ts +66 -0
  159. package/mssql-core/columns/varchar.js +88 -0
  160. package/mssql-core/columns/varchar.js.map +1 -0
  161. package/mssql-core/db.cjs +254 -0
  162. package/mssql-core/db.cjs.map +1 -0
  163. package/mssql-core/db.d.cts +228 -0
  164. package/mssql-core/db.d.ts +228 -0
  165. package/mssql-core/db.js +235 -0
  166. package/mssql-core/db.js.map +1 -0
  167. package/mssql-core/dialect.cjs +568 -0
  168. package/mssql-core/dialect.cjs.map +1 -0
  169. package/mssql-core/dialect.d.cts +57 -0
  170. package/mssql-core/dialect.d.ts +57 -0
  171. package/mssql-core/dialect.js +550 -0
  172. package/mssql-core/dialect.js.map +1 -0
  173. package/mssql-core/expressions.cjs +49 -0
  174. package/mssql-core/expressions.cjs.map +1 -0
  175. package/mssql-core/expressions.d.cts +8 -0
  176. package/mssql-core/expressions.d.ts +8 -0
  177. package/mssql-core/expressions.js +22 -0
  178. package/mssql-core/expressions.js.map +1 -0
  179. package/mssql-core/foreign-keys.cjs +91 -0
  180. package/mssql-core/foreign-keys.cjs.map +1 -0
  181. package/mssql-core/foreign-keys.d.cts +51 -0
  182. package/mssql-core/foreign-keys.d.ts +51 -0
  183. package/mssql-core/foreign-keys.js +65 -0
  184. package/mssql-core/foreign-keys.js.map +1 -0
  185. package/mssql-core/index.cjs +55 -0
  186. package/mssql-core/index.cjs.map +1 -0
  187. package/mssql-core/index.d.cts +17 -0
  188. package/mssql-core/index.d.ts +17 -0
  189. package/mssql-core/index.js +18 -0
  190. package/mssql-core/index.js.map +1 -0
  191. package/mssql-core/indexes.cjs +80 -0
  192. package/mssql-core/indexes.cjs.map +1 -0
  193. package/mssql-core/indexes.d.cts +49 -0
  194. package/mssql-core/indexes.d.ts +49 -0
  195. package/mssql-core/indexes.js +52 -0
  196. package/mssql-core/indexes.js.map +1 -0
  197. package/mssql-core/primary-keys.cjs +64 -0
  198. package/mssql-core/primary-keys.cjs.map +1 -0
  199. package/mssql-core/primary-keys.d.cts +23 -0
  200. package/mssql-core/primary-keys.d.ts +23 -0
  201. package/mssql-core/primary-keys.js +38 -0
  202. package/mssql-core/primary-keys.js.map +1 -0
  203. package/mssql-core/query-builders/delete.cjs +101 -0
  204. package/mssql-core/query-builders/delete.cjs.map +1 -0
  205. package/mssql-core/query-builders/delete.d.cts +74 -0
  206. package/mssql-core/query-builders/delete.d.ts +74 -0
  207. package/mssql-core/query-builders/delete.js +77 -0
  208. package/mssql-core/query-builders/delete.js.map +1 -0
  209. package/mssql-core/query-builders/index.cjs +33 -0
  210. package/mssql-core/query-builders/index.cjs.map +1 -0
  211. package/mssql-core/query-builders/index.d.cts +6 -0
  212. package/mssql-core/query-builders/index.d.ts +6 -0
  213. package/mssql-core/query-builders/index.js +7 -0
  214. package/mssql-core/query-builders/index.js.map +1 -0
  215. package/mssql-core/query-builders/insert.cjs +95 -0
  216. package/mssql-core/query-builders/insert.cjs.map +1 -0
  217. package/mssql-core/query-builders/insert.d.cts +54 -0
  218. package/mssql-core/query-builders/insert.d.ts +54 -0
  219. package/mssql-core/query-builders/insert.js +70 -0
  220. package/mssql-core/query-builders/insert.js.map +1 -0
  221. package/mssql-core/query-builders/query-builder.cjs +95 -0
  222. package/mssql-core/query-builders/query-builder.cjs.map +1 -0
  223. package/mssql-core/query-builders/query-builder.d.cts +32 -0
  224. package/mssql-core/query-builders/query-builder.d.ts +32 -0
  225. package/mssql-core/query-builders/query-builder.js +71 -0
  226. package/mssql-core/query-builders/query-builder.js.map +1 -0
  227. package/mssql-core/query-builders/query.cjs +126 -0
  228. package/mssql-core/query-builders/query.cjs.map +1 -0
  229. package/mssql-core/query-builders/query.d.cts +42 -0
  230. package/mssql-core/query-builders/query.d.ts +42 -0
  231. package/mssql-core/query-builders/query.js +103 -0
  232. package/mssql-core/query-builders/query.js.map +1 -0
  233. package/mssql-core/query-builders/select.cjs +679 -0
  234. package/mssql-core/query-builders/select.cjs.map +1 -0
  235. package/mssql-core/query-builders/select.d.cts +549 -0
  236. package/mssql-core/query-builders/select.d.ts +549 -0
  237. package/mssql-core/query-builders/select.js +649 -0
  238. package/mssql-core/query-builders/select.js.map +1 -0
  239. package/mssql-core/query-builders/select.types.cjs +17 -0
  240. package/mssql-core/query-builders/select.types.cjs.map +1 -0
  241. package/mssql-core/query-builders/select.types.d.cts +138 -0
  242. package/mssql-core/query-builders/select.types.d.ts +138 -0
  243. package/mssql-core/query-builders/select.types.js +1 -0
  244. package/mssql-core/query-builders/select.types.js.map +1 -0
  245. package/mssql-core/query-builders/update.cjs +118 -0
  246. package/mssql-core/query-builders/update.cjs.map +1 -0
  247. package/mssql-core/query-builders/update.d.cts +93 -0
  248. package/mssql-core/query-builders/update.d.ts +93 -0
  249. package/mssql-core/query-builders/update.js +93 -0
  250. package/mssql-core/query-builders/update.js.map +1 -0
  251. package/mssql-core/schema.cjs +51 -0
  252. package/mssql-core/schema.cjs.map +1 -0
  253. package/mssql-core/schema.d.cts +22 -0
  254. package/mssql-core/schema.d.ts +22 -0
  255. package/mssql-core/schema.js +25 -0
  256. package/mssql-core/schema.js.map +1 -0
  257. package/mssql-core/session.cjs +74 -0
  258. package/mssql-core/session.cjs.map +1 -0
  259. package/mssql-core/session.d.cts +63 -0
  260. package/mssql-core/session.d.ts +63 -0
  261. package/mssql-core/session.js +48 -0
  262. package/mssql-core/session.js.map +1 -0
  263. package/mssql-core/subquery.cjs +17 -0
  264. package/mssql-core/subquery.cjs.map +1 -0
  265. package/mssql-core/subquery.d.cts +18 -0
  266. package/mssql-core/subquery.d.ts +18 -0
  267. package/mssql-core/subquery.js +1 -0
  268. package/mssql-core/subquery.js.map +1 -0
  269. package/mssql-core/table.cjs +81 -0
  270. package/mssql-core/table.cjs.map +1 -0
  271. package/mssql-core/table.d.cts +43 -0
  272. package/mssql-core/table.d.ts +43 -0
  273. package/mssql-core/table.js +53 -0
  274. package/mssql-core/table.js.map +1 -0
  275. package/mssql-core/unique-constraint.cjs +76 -0
  276. package/mssql-core/unique-constraint.cjs.map +1 -0
  277. package/mssql-core/unique-constraint.d.cts +23 -0
  278. package/mssql-core/unique-constraint.d.ts +23 -0
  279. package/mssql-core/unique-constraint.js +49 -0
  280. package/mssql-core/unique-constraint.js.map +1 -0
  281. package/mssql-core/utils.cjs +85 -0
  282. package/mssql-core/utils.cjs.map +1 -0
  283. package/mssql-core/utils.d.cts +31 -0
  284. package/mssql-core/utils.d.ts +31 -0
  285. package/mssql-core/utils.js +60 -0
  286. package/mssql-core/utils.js.map +1 -0
  287. package/mssql-core/view-base.cjs +33 -0
  288. package/mssql-core/view-base.cjs.map +1 -0
  289. package/mssql-core/view-base.d.cts +9 -0
  290. package/mssql-core/view-base.d.ts +9 -0
  291. package/mssql-core/view-base.js +9 -0
  292. package/mssql-core/view-base.js.map +1 -0
  293. package/mssql-core/view-common.cjs +29 -0
  294. package/mssql-core/view-common.cjs.map +1 -0
  295. package/mssql-core/view-common.d.cts +1 -0
  296. package/mssql-core/view-common.d.ts +1 -0
  297. package/mssql-core/view-common.js +5 -0
  298. package/mssql-core/view-common.js.map +1 -0
  299. package/mssql-core/view.cjs +154 -0
  300. package/mssql-core/view.cjs.map +1 -0
  301. package/mssql-core/view.d.cts +64 -0
  302. package/mssql-core/view.d.ts +64 -0
  303. package/mssql-core/view.js +125 -0
  304. package/mssql-core/view.js.map +1 -0
  305. package/node-mssql/driver.cjs +86 -0
  306. package/node-mssql/driver.cjs.map +1 -0
  307. package/node-mssql/driver.d.cts +32 -0
  308. package/node-mssql/driver.d.ts +32 -0
  309. package/node-mssql/driver.js +63 -0
  310. package/node-mssql/driver.js.map +1 -0
  311. package/node-mssql/index.cjs +25 -0
  312. package/node-mssql/index.cjs.map +1 -0
  313. package/node-mssql/index.d.cts +2 -0
  314. package/node-mssql/index.d.ts +2 -0
  315. package/node-mssql/index.js +3 -0
  316. package/node-mssql/index.js.map +1 -0
  317. package/node-mssql/migrator.cjs +33 -0
  318. package/node-mssql/migrator.cjs.map +1 -0
  319. package/node-mssql/migrator.d.cts +3 -0
  320. package/node-mssql/migrator.d.ts +3 -0
  321. package/node-mssql/migrator.js +9 -0
  322. package/node-mssql/migrator.js.map +1 -0
  323. package/node-mssql/session.cjs +243 -0
  324. package/node-mssql/session.cjs.map +1 -0
  325. package/node-mssql/session.d.cts +47 -0
  326. package/node-mssql/session.d.ts +47 -0
  327. package/node-mssql/session.js +211 -0
  328. package/node-mssql/session.js.map +1 -0
  329. package/package.json +653 -1
  330. package/pg-core/schema.cjs +2 -2
  331. package/pg-core/schema.cjs.map +1 -1
  332. package/pg-core/schema.d.cts +4 -1
  333. package/pg-core/schema.d.ts +4 -1
  334. package/pg-core/schema.js +2 -2
  335. package/pg-core/schema.js.map +1 -1
  336. package/relations.cjs +48 -0
  337. package/relations.cjs.map +1 -1
  338. package/relations.d.cts +1 -0
  339. package/relations.d.ts +1 -0
  340. package/relations.js +47 -0
  341. package/relations.js.map +1 -1
  342. package/version.cjs +1 -1
  343. package/version.d.cts +1 -1
  344. package/version.d.ts +1 -1
  345. package/version.js +1 -1
@@ -0,0 +1,93 @@
1
+ import type { GetColumnData } from "../../column.cjs";
2
+ import { entityKind } from "../../entity.cjs";
3
+ import type { MsSqlDialect } from "../dialect.cjs";
4
+ import type { AnyQueryResultHKT, MsSqlSession, PreparedQueryConfig, PreparedQueryHKTBase, PreparedQueryKind, QueryResultHKT, QueryResultKind } from "../session.cjs";
5
+ import type { MsSqlTable } from "../table.cjs";
6
+ import { QueryPromise } from "../../query-promise.cjs";
7
+ import type { Query, SQL, SQLWrapper } from "../../sql/sql.cjs";
8
+ import { type UpdateSet } from "../../utils.cjs";
9
+ import type { SelectedFieldsOrdered } from "./select.types.cjs";
10
+ export interface MsSqlUpdateConfig {
11
+ where?: SQL | undefined;
12
+ set: UpdateSet;
13
+ table: MsSqlTable;
14
+ returning?: SelectedFieldsOrdered;
15
+ }
16
+ export type MsSqlUpdateSetSource<TTable extends MsSqlTable> = {
17
+ [Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL;
18
+ } & {};
19
+ export declare class MsSqlUpdateBuilder<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
20
+ private table;
21
+ private session;
22
+ private dialect;
23
+ static readonly [entityKind]: string;
24
+ readonly _: {
25
+ readonly table: TTable;
26
+ };
27
+ constructor(table: TTable, session: MsSqlSession, dialect: MsSqlDialect);
28
+ set(values: MsSqlUpdateSetSource<TTable>): MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT>;
29
+ }
30
+ export type MsSqlUpdateWithout<T extends AnyMsSqlUpdateBase, TDynamic extends boolean, K extends keyof T & string> = TDynamic extends true ? T : Omit<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], TDynamic, T['_']['excludedMethods'] | K>, T['_']['excludedMethods'] | K>;
31
+ export type MsSqlUpdatePrepare<T extends AnyMsSqlUpdateBase> = PreparedQueryKind<T['_']['preparedQueryHKT'], PreparedQueryConfig & {
32
+ execute: QueryResultKind<T['_']['queryResult'], any>;
33
+ iterator: never;
34
+ }>;
35
+ export type MsSqlUpdateDynamic<T extends AnyMsSqlUpdateBase> = MsSqlUpdate<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT']>;
36
+ export type MsSqlUpdate<TTable extends MsSqlTable = MsSqlTable, TQueryResult extends QueryResultHKT = AnyQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase> = MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;
37
+ export type AnyMsSqlUpdateBase = MsSqlUpdateBase<any, any, any, any, any>;
38
+ export interface MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<QueryResultKind<TQueryResult, any>>, SQLWrapper {
39
+ readonly _: {
40
+ readonly table: TTable;
41
+ readonly queryResult: TQueryResult;
42
+ readonly preparedQueryHKT: TPreparedQueryHKT;
43
+ readonly dynamic: TDynamic;
44
+ readonly excludedMethods: TExcludedMethods;
45
+ };
46
+ }
47
+ export declare class MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<QueryResultKind<TQueryResult, any>> implements SQLWrapper {
48
+ private session;
49
+ private dialect;
50
+ static readonly [entityKind]: string;
51
+ private config;
52
+ constructor(table: TTable, set: UpdateSet, session: MsSqlSession, dialect: MsSqlDialect);
53
+ /**
54
+ * Adds a 'where' clause to the query.
55
+ *
56
+ * Calling this method will update only those rows that fulfill a specified condition.
57
+ *
58
+ * See docs: {@link https://orm.drizzle.team/docs/update}
59
+ *
60
+ * @param where the 'where' clause.
61
+ *
62
+ * @example
63
+ * You can use conditional operators and `sql function` to filter the rows to be updated.
64
+ *
65
+ * ```ts
66
+ * // Update all cars with green color
67
+ * db.update(cars).set({ color: 'red' })
68
+ * .where(eq(cars.color, 'green'));
69
+ * // or
70
+ * db.update(cars).set({ color: 'red' })
71
+ * .where(sql`${cars.color} = 'green'`)
72
+ * ```
73
+ *
74
+ * You can logically combine conditional operators with `and()` and `or()` operators:
75
+ *
76
+ * ```ts
77
+ * // Update all BMW cars with a green color
78
+ * db.update(cars).set({ color: 'red' })
79
+ * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
80
+ *
81
+ * // Update all cars with the green or blue color
82
+ * db.update(cars).set({ color: 'red' })
83
+ * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
84
+ * ```
85
+ */
86
+ where(where: SQL | undefined): MsSqlUpdateWithout<this, TDynamic, 'where'>;
87
+ toSQL(): Query;
88
+ prepare(): MsSqlUpdatePrepare<this>;
89
+ execute: ReturnType<this['prepare']>['execute'];
90
+ private createIterator;
91
+ iterator: ReturnType<this["prepare"]>["iterator"];
92
+ $dynamic(): MsSqlUpdateDynamic<this>;
93
+ }
@@ -0,0 +1,93 @@
1
+ import type { GetColumnData } from "../../column.js";
2
+ import { entityKind } from "../../entity.js";
3
+ import type { MsSqlDialect } from "../dialect.js";
4
+ import type { AnyQueryResultHKT, MsSqlSession, PreparedQueryConfig, PreparedQueryHKTBase, PreparedQueryKind, QueryResultHKT, QueryResultKind } from "../session.js";
5
+ import type { MsSqlTable } from "../table.js";
6
+ import { QueryPromise } from "../../query-promise.js";
7
+ import type { Query, SQL, SQLWrapper } from "../../sql/sql.js";
8
+ import { type UpdateSet } from "../../utils.js";
9
+ import type { SelectedFieldsOrdered } from "./select.types.js";
10
+ export interface MsSqlUpdateConfig {
11
+ where?: SQL | undefined;
12
+ set: UpdateSet;
13
+ table: MsSqlTable;
14
+ returning?: SelectedFieldsOrdered;
15
+ }
16
+ export type MsSqlUpdateSetSource<TTable extends MsSqlTable> = {
17
+ [Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL;
18
+ } & {};
19
+ export declare class MsSqlUpdateBuilder<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
20
+ private table;
21
+ private session;
22
+ private dialect;
23
+ static readonly [entityKind]: string;
24
+ readonly _: {
25
+ readonly table: TTable;
26
+ };
27
+ constructor(table: TTable, session: MsSqlSession, dialect: MsSqlDialect);
28
+ set(values: MsSqlUpdateSetSource<TTable>): MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT>;
29
+ }
30
+ export type MsSqlUpdateWithout<T extends AnyMsSqlUpdateBase, TDynamic extends boolean, K extends keyof T & string> = TDynamic extends true ? T : Omit<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], TDynamic, T['_']['excludedMethods'] | K>, T['_']['excludedMethods'] | K>;
31
+ export type MsSqlUpdatePrepare<T extends AnyMsSqlUpdateBase> = PreparedQueryKind<T['_']['preparedQueryHKT'], PreparedQueryConfig & {
32
+ execute: QueryResultKind<T['_']['queryResult'], any>;
33
+ iterator: never;
34
+ }>;
35
+ export type MsSqlUpdateDynamic<T extends AnyMsSqlUpdateBase> = MsSqlUpdate<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT']>;
36
+ export type MsSqlUpdate<TTable extends MsSqlTable = MsSqlTable, TQueryResult extends QueryResultHKT = AnyQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase> = MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;
37
+ export type AnyMsSqlUpdateBase = MsSqlUpdateBase<any, any, any, any, any>;
38
+ export interface MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<QueryResultKind<TQueryResult, any>>, SQLWrapper {
39
+ readonly _: {
40
+ readonly table: TTable;
41
+ readonly queryResult: TQueryResult;
42
+ readonly preparedQueryHKT: TPreparedQueryHKT;
43
+ readonly dynamic: TDynamic;
44
+ readonly excludedMethods: TExcludedMethods;
45
+ };
46
+ }
47
+ export declare class MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<QueryResultKind<TQueryResult, any>> implements SQLWrapper {
48
+ private session;
49
+ private dialect;
50
+ static readonly [entityKind]: string;
51
+ private config;
52
+ constructor(table: TTable, set: UpdateSet, session: MsSqlSession, dialect: MsSqlDialect);
53
+ /**
54
+ * Adds a 'where' clause to the query.
55
+ *
56
+ * Calling this method will update only those rows that fulfill a specified condition.
57
+ *
58
+ * See docs: {@link https://orm.drizzle.team/docs/update}
59
+ *
60
+ * @param where the 'where' clause.
61
+ *
62
+ * @example
63
+ * You can use conditional operators and `sql function` to filter the rows to be updated.
64
+ *
65
+ * ```ts
66
+ * // Update all cars with green color
67
+ * db.update(cars).set({ color: 'red' })
68
+ * .where(eq(cars.color, 'green'));
69
+ * // or
70
+ * db.update(cars).set({ color: 'red' })
71
+ * .where(sql`${cars.color} = 'green'`)
72
+ * ```
73
+ *
74
+ * You can logically combine conditional operators with `and()` and `or()` operators:
75
+ *
76
+ * ```ts
77
+ * // Update all BMW cars with a green color
78
+ * db.update(cars).set({ color: 'red' })
79
+ * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
80
+ *
81
+ * // Update all cars with the green or blue color
82
+ * db.update(cars).set({ color: 'red' })
83
+ * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
84
+ * ```
85
+ */
86
+ where(where: SQL | undefined): MsSqlUpdateWithout<this, TDynamic, 'where'>;
87
+ toSQL(): Query;
88
+ prepare(): MsSqlUpdatePrepare<this>;
89
+ execute: ReturnType<this['prepare']>['execute'];
90
+ private createIterator;
91
+ iterator: ReturnType<this["prepare"]>["iterator"];
92
+ $dynamic(): MsSqlUpdateDynamic<this>;
93
+ }
@@ -0,0 +1,93 @@
1
+ import { entityKind } from "../../entity.js";
2
+ import { QueryPromise } from "../../query-promise.js";
3
+ import { mapUpdateSet } from "../../utils.js";
4
+ class MsSqlUpdateBuilder {
5
+ constructor(table, session, dialect) {
6
+ this.table = table;
7
+ this.session = session;
8
+ this.dialect = dialect;
9
+ }
10
+ static [entityKind] = "MsSqlUpdateBuilder";
11
+ set(values) {
12
+ return new MsSqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect);
13
+ }
14
+ }
15
+ class MsSqlUpdateBase extends QueryPromise {
16
+ constructor(table, set, session, dialect) {
17
+ super();
18
+ this.session = session;
19
+ this.dialect = dialect;
20
+ this.config = { set, table };
21
+ }
22
+ static [entityKind] = "MsSqlUpdate";
23
+ config;
24
+ /**
25
+ * Adds a 'where' clause to the query.
26
+ *
27
+ * Calling this method will update only those rows that fulfill a specified condition.
28
+ *
29
+ * See docs: {@link https://orm.drizzle.team/docs/update}
30
+ *
31
+ * @param where the 'where' clause.
32
+ *
33
+ * @example
34
+ * You can use conditional operators and `sql function` to filter the rows to be updated.
35
+ *
36
+ * ```ts
37
+ * // Update all cars with green color
38
+ * db.update(cars).set({ color: 'red' })
39
+ * .where(eq(cars.color, 'green'));
40
+ * // or
41
+ * db.update(cars).set({ color: 'red' })
42
+ * .where(sql`${cars.color} = 'green'`)
43
+ * ```
44
+ *
45
+ * You can logically combine conditional operators with `and()` and `or()` operators:
46
+ *
47
+ * ```ts
48
+ * // Update all BMW cars with a green color
49
+ * db.update(cars).set({ color: 'red' })
50
+ * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
51
+ *
52
+ * // Update all cars with the green or blue color
53
+ * db.update(cars).set({ color: 'red' })
54
+ * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
55
+ * ```
56
+ */
57
+ where(where) {
58
+ this.config.where = where;
59
+ return this;
60
+ }
61
+ /** @internal */
62
+ getSQL() {
63
+ return this.dialect.buildUpdateQuery(this.config);
64
+ }
65
+ toSQL() {
66
+ const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
67
+ return rest;
68
+ }
69
+ prepare() {
70
+ return this.session.prepareQuery(
71
+ this.dialect.sqlToQuery(this.getSQL()),
72
+ this.config.returning
73
+ );
74
+ }
75
+ execute = (placeholderValues) => {
76
+ return this.prepare().execute(placeholderValues);
77
+ };
78
+ createIterator = () => {
79
+ const self = this;
80
+ return async function* (placeholderValues) {
81
+ yield* self.prepare().iterator(placeholderValues);
82
+ };
83
+ };
84
+ iterator = this.createIterator();
85
+ $dynamic() {
86
+ return this;
87
+ }
88
+ }
89
+ export {
90
+ MsSqlUpdateBase,
91
+ MsSqlUpdateBuilder
92
+ };
93
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/mssql-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MsSqlDialect } from '~/mssql-core/dialect.ts';\nimport type {\n\tAnyQueryResultHKT,\n\tMsSqlSession,\n\tPreparedQueryConfig,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tQueryResultHKT,\n\tQueryResultKind,\n} from '~/mssql-core/session.ts';\nimport type { MsSqlTable } from '~/mssql-core/table.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { mapUpdateSet, type UpdateSet } from '~/utils.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface MsSqlUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: MsSqlTable;\n\treturning?: SelectedFieldsOrdered;\n}\n\nexport type MsSqlUpdateSetSource<TTable extends MsSqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL;\n\t}\n\t& {};\n\nexport class MsSqlUpdateBuilder<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MsSqlUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MsSqlSession,\n\t\tprivate dialect: MsSqlDialect,\n\t) {}\n\n\tset(values: MsSqlUpdateSetSource<TTable>): MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\treturn new MsSqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect);\n\t}\n}\n\nexport type MsSqlUpdateWithout<\n\tT extends AnyMsSqlUpdateBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tMsSqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type MsSqlUpdatePrepare<T extends AnyMsSqlUpdateBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tPreparedQueryConfig & {\n\t\texecute: QueryResultKind<T['_']['queryResult'], any>;\n\t\titerator: never;\n\t}\n>;\n\nexport type MsSqlUpdateDynamic<T extends AnyMsSqlUpdateBase> = MsSqlUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT']\n>;\n\nexport type MsSqlUpdate<\n\tTTable extends MsSqlTable = MsSqlTable,\n\tTQueryResult extends QueryResultHKT = AnyQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n> = MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;\n\nexport type AnyMsSqlUpdateBase = MsSqlUpdateBase<any, any, any, any, any>;\n\nexport interface MsSqlUpdateBase<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<QueryResultKind<TQueryResult, any>>, SQLWrapper {\n\treadonly _: {\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t};\n}\n\nexport class MsSqlUpdateBase<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<QueryResultKind<TQueryResult, any>> implements SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'MsSqlUpdate';\n\n\tprivate config: MsSqlUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: MsSqlSession,\n\t\tprivate dialect: MsSqlDialect,\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MsSqlUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): MsSqlUpdatePrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t) as MsSqlUpdatePrepare<this>;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this.prepare().execute(placeholderValues);\n\t};\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): MsSqlUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAY3B,SAAS,oBAAoB;AAE7B,SAAS,oBAAoC;AAkBtC,MAAM,mBAIX;AAAA,EAOD,YACS,OACA,SACA,SACP;AAHO;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,IAAI,QAAgG;AACnG,WAAO,IAAI,gBAAgB,KAAK,OAAO,aAAa,KAAK,OAAO,MAAM,GAAG,KAAK,SAAS,KAAK,OAAO;AAAA,EACpG;AACD;AAuDO,MAAM,wBASH,aAAuE;AAAA,EAKhF,YACC,OACA,KACQ,SACA,SACP;AACD,UAAM;AAHE;AACA;AAGR,SAAK,SAAS,EAAE,KAAK,MAAM;AAAA,EAC5B;AAAA,EAZA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6CR,MAAM,OAAqE;AAC1E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA,EAEA,UAAoC;AACnC,WAAO,KAAK,QAAQ;AAAA,MACnB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,KAAK,OAAO;AAAA,IACb;AAAA,EACD;AAAA,EAES,UAAkD,CAAC,sBAAsB;AACjF,WAAO,KAAK,QAAQ,EAAE,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EAEQ,iBAAiB,MAA+C;AACvE,UAAM,OAAO;AACb,WAAO,iBAAgB,mBAAmB;AACzC,aAAO,KAAK,QAAQ,EAAE,SAAS,iBAAiB;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,eAAe;AAAA,EAE/B,WAAqC;AACpC,WAAO;AAAA,EACR;AACD;","names":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var schema_exports = {};
20
+ __export(schema_exports, {
21
+ MsSqlSchema: () => MsSqlSchema,
22
+ mssqlDatabase: () => mssqlDatabase,
23
+ mssqlSchema: () => mssqlSchema
24
+ });
25
+ module.exports = __toCommonJS(schema_exports);
26
+ var import_entity = require("../entity.cjs");
27
+ var import_table = require("./table.cjs");
28
+ var import_view = require("./view.cjs");
29
+ class MsSqlSchema {
30
+ constructor(schemaName) {
31
+ this.schemaName = schemaName;
32
+ }
33
+ static [import_entity.entityKind] = "MsSqlSchema";
34
+ table = (name, columns, extraConfig) => {
35
+ return (0, import_table.mssqlTableWithSchema)(name, columns, extraConfig, this.schemaName);
36
+ };
37
+ view = (name, columns) => {
38
+ return (0, import_view.mssqlViewWithSchema)(name, columns, this.schemaName);
39
+ };
40
+ }
41
+ function mssqlDatabase(name) {
42
+ return new MsSqlSchema(name);
43
+ }
44
+ const mssqlSchema = mssqlDatabase;
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ MsSqlSchema,
48
+ mssqlDatabase,
49
+ mssqlSchema
50
+ });
51
+ //# sourceMappingURL=schema.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mssql-core/schema.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { type MsSqlTableFn, mssqlTableWithSchema } from './table.ts';\nimport { type mssqlView, mssqlViewWithSchema } from './view.ts';\n\nexport class MsSqlSchema<TName extends string = string> {\n\tstatic readonly [entityKind]: string = 'MsSqlSchema';\n\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: MsSqlTableFn<TName> = (name, columns, extraConfig) => {\n\t\treturn mssqlTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t};\n\n\tview = ((name, columns) => {\n\t\treturn mssqlViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof mssqlView;\n}\n\n/**\n * Create a MySQL schema.\n * https://dev.mssql.com/doc/refman/8.0/en/create-database.html\n *\n * @param name mssql use schema name\n * @returns MySQL schema\n */\nexport function mssqlDatabase<TName extends string>(name: TName) {\n\treturn new MsSqlSchema(name);\n}\n\n/**\n * @see mssqlDatabase\n */\nexport const mssqlSchema = mssqlDatabase;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,mBAAwD;AACxD,kBAAoD;AAE7C,MAAM,YAA2C;AAAA,EAGvD,YACiB,YACf;AADe;AAAA,EACd;AAAA,EAJH,QAAiB,wBAAU,IAAY;AAAA,EAMvC,QAA6B,CAAC,MAAM,SAAS,gBAAgB;AAC5D,eAAO,mCAAqB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACxE;AAAA,EAEA,OAAQ,CAAC,MAAM,YAAY;AAC1B,eAAO,iCAAoB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1D;AACD;AASO,SAAS,cAAoC,MAAa;AAChE,SAAO,IAAI,YAAY,IAAI;AAC5B;AAKO,MAAM,cAAc;","names":[]}
@@ -0,0 +1,22 @@
1
+ import { entityKind } from "../entity.cjs";
2
+ import { type MsSqlTableFn } from "./table.cjs";
3
+ import { type mssqlView } from "./view.cjs";
4
+ export declare class MsSqlSchema<TName extends string = string> {
5
+ readonly schemaName: TName;
6
+ static readonly [entityKind]: string;
7
+ constructor(schemaName: TName);
8
+ table: MsSqlTableFn<TName>;
9
+ view: typeof mssqlView;
10
+ }
11
+ /**
12
+ * Create a MySQL schema.
13
+ * https://dev.mssql.com/doc/refman/8.0/en/create-database.html
14
+ *
15
+ * @param name mssql use schema name
16
+ * @returns MySQL schema
17
+ */
18
+ export declare function mssqlDatabase<TName extends string>(name: TName): MsSqlSchema<TName>;
19
+ /**
20
+ * @see mssqlDatabase
21
+ */
22
+ export declare const mssqlSchema: typeof mssqlDatabase;
@@ -0,0 +1,22 @@
1
+ import { entityKind } from "../entity.js";
2
+ import { type MsSqlTableFn } from "./table.js";
3
+ import { type mssqlView } from "./view.js";
4
+ export declare class MsSqlSchema<TName extends string = string> {
5
+ readonly schemaName: TName;
6
+ static readonly [entityKind]: string;
7
+ constructor(schemaName: TName);
8
+ table: MsSqlTableFn<TName>;
9
+ view: typeof mssqlView;
10
+ }
11
+ /**
12
+ * Create a MySQL schema.
13
+ * https://dev.mssql.com/doc/refman/8.0/en/create-database.html
14
+ *
15
+ * @param name mssql use schema name
16
+ * @returns MySQL schema
17
+ */
18
+ export declare function mssqlDatabase<TName extends string>(name: TName): MsSqlSchema<TName>;
19
+ /**
20
+ * @see mssqlDatabase
21
+ */
22
+ export declare const mssqlSchema: typeof mssqlDatabase;
@@ -0,0 +1,25 @@
1
+ import { entityKind } from "../entity.js";
2
+ import { mssqlTableWithSchema } from "./table.js";
3
+ import { mssqlViewWithSchema } from "./view.js";
4
+ class MsSqlSchema {
5
+ constructor(schemaName) {
6
+ this.schemaName = schemaName;
7
+ }
8
+ static [entityKind] = "MsSqlSchema";
9
+ table = (name, columns, extraConfig) => {
10
+ return mssqlTableWithSchema(name, columns, extraConfig, this.schemaName);
11
+ };
12
+ view = (name, columns) => {
13
+ return mssqlViewWithSchema(name, columns, this.schemaName);
14
+ };
15
+ }
16
+ function mssqlDatabase(name) {
17
+ return new MsSqlSchema(name);
18
+ }
19
+ const mssqlSchema = mssqlDatabase;
20
+ export {
21
+ MsSqlSchema,
22
+ mssqlDatabase,
23
+ mssqlSchema
24
+ };
25
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mssql-core/schema.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { type MsSqlTableFn, mssqlTableWithSchema } from './table.ts';\nimport { type mssqlView, mssqlViewWithSchema } from './view.ts';\n\nexport class MsSqlSchema<TName extends string = string> {\n\tstatic readonly [entityKind]: string = 'MsSqlSchema';\n\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: MsSqlTableFn<TName> = (name, columns, extraConfig) => {\n\t\treturn mssqlTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t};\n\n\tview = ((name, columns) => {\n\t\treturn mssqlViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof mssqlView;\n}\n\n/**\n * Create a MySQL schema.\n * https://dev.mssql.com/doc/refman/8.0/en/create-database.html\n *\n * @param name mssql use schema name\n * @returns MySQL schema\n */\nexport function mssqlDatabase<TName extends string>(name: TName) {\n\treturn new MsSqlSchema(name);\n}\n\n/**\n * @see mssqlDatabase\n */\nexport const mssqlSchema = mssqlDatabase;\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAA4B,4BAA4B;AACxD,SAAyB,2BAA2B;AAE7C,MAAM,YAA2C;AAAA,EAGvD,YACiB,YACf;AADe;AAAA,EACd;AAAA,EAJH,QAAiB,UAAU,IAAY;AAAA,EAMvC,QAA6B,CAAC,MAAM,SAAS,gBAAgB;AAC5D,WAAO,qBAAqB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACxE;AAAA,EAEA,OAAQ,CAAC,MAAM,YAAY;AAC1B,WAAO,oBAAoB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1D;AACD;AASO,SAAS,cAAoC,MAAa;AAChE,SAAO,IAAI,YAAY,IAAI;AAC5B;AAKO,MAAM,cAAc;","names":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var session_exports = {};
20
+ __export(session_exports, {
21
+ MsSqlSession: () => MsSqlSession,
22
+ MsSqlTransaction: () => MsSqlTransaction,
23
+ PreparedQuery: () => PreparedQuery
24
+ });
25
+ module.exports = __toCommonJS(session_exports);
26
+ var import_entity = require("../entity.cjs");
27
+ var import_errors = require("../errors.cjs");
28
+ var import_sql = require("../sql/sql.cjs");
29
+ var import_db = require("./db.cjs");
30
+ class PreparedQuery {
31
+ static [import_entity.entityKind] = "MsSqlPreparedQuery";
32
+ /** @internal */
33
+ joinsNotNullableMap;
34
+ }
35
+ class MsSqlSession {
36
+ constructor(dialect) {
37
+ this.dialect = dialect;
38
+ }
39
+ static [import_entity.entityKind] = "MsSqlSession";
40
+ execute(query) {
41
+ return this.prepareQuery(
42
+ this.dialect.sqlToQuery(query),
43
+ void 0
44
+ ).execute();
45
+ }
46
+ getSetTransactionSQL(config) {
47
+ const parts = [];
48
+ if (config.isolationLevel) {
49
+ parts.push(`isolation level ${config.isolationLevel}`);
50
+ }
51
+ return parts.length ? import_sql.sql.join(["set transaction ", parts.join(" ")]) : void 0;
52
+ }
53
+ getStartTransactionSQL(_config) {
54
+ return import_sql.sql`begin transaction`;
55
+ }
56
+ }
57
+ class MsSqlTransaction extends import_db.MsSqlDatabase {
58
+ constructor(dialect, session, schema, nestedIndex) {
59
+ super(dialect, session, schema);
60
+ this.schema = schema;
61
+ this.nestedIndex = nestedIndex;
62
+ }
63
+ static [import_entity.entityKind] = "MsSqlTransaction";
64
+ rollback() {
65
+ throw new import_errors.TransactionRollbackError();
66
+ }
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ MsSqlSession,
71
+ MsSqlTransaction,
72
+ PreparedQuery
73
+ });
74
+ //# sourceMappingURL=session.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mssql-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { MsSqlDatabase } from './db.ts';\nimport type { MsSqlDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface QueryResultHKT {\n\treadonly $brand: 'MsSqlQueryRowHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnyQueryResultHKT extends QueryResultHKT {\n\treadonly type: any;\n}\n\nexport type QueryResultKind<TKind extends QueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface PreparedQueryHKT {\n\treadonly $brand: 'MsSqlPreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends PreparedQueryHKT,\n\tTConfig extends PreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true ? Assume<(TKind & { readonly config: TConfig })['type'], PreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class PreparedQuery<T extends PreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'MsSqlPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface MsSqlTransactionConfig {\n\tisolationLevel: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable' | 'snapshot';\n}\n\nexport abstract class MsSqlSession<\n\tTQueryResult extends QueryResultHKT = QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'MsSqlSession';\n\n\tconstructor(protected dialect: MsSqlDialect) {}\n\n\tabstract prepareQuery<T extends PreparedQueryConfig, TPreparedQueryHKT extends PreparedQueryHKT>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: MsSqlTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: MsSqlTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql.join(['set transaction ', parts.join(' ')]) : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(_config: MsSqlTransactionConfig): SQL | undefined {\n\t\treturn sql`begin transaction`;\n\t}\n}\n\nexport abstract class MsSqlTransaction<\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends MsSqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MsSqlTransaction';\n\n\tconstructor(\n\t\tdialect: MsSqlDialect,\n\t\tsession: MsSqlSession,\n\t\tprotected schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends PreparedQueryHKT {\n\ttype: PreparedQuery<Assume<this['config'], PreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAEzC,iBAA0C;AAE1C,gBAA8B;AAoCvB,MAAe,cAA6C;AAAA,EAClE,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAMO,MAAe,aAKpB;AAAA,EAGD,YAAsB,SAAuB;AAAvB;AAAA,EAAwB;AAAA,EAF9C,QAAiB,wBAAU,IAAY;AAAA,EAUvC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EASU,qBAAqB,QAAiD;AAC/E,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,eAAI,KAAK,CAAC,oBAAoB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI;AAAA,EACzE;AAAA,EAEU,uBAAuB,SAAkD;AAClF,WAAO;AAAA,EACR;AACD;AAEO,MAAe,yBAKZ,wBAAqE;AAAA,EAG9E,YACC,SACA,SACU,QACS,aAClB;AACD,UAAM,SAAS,SAAS,MAAM;AAHpB;AACS;AAAA,EAGpB;AAAA,EATA,QAA0B,wBAAU,IAAY;AAAA,EAWhD,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAMD;","names":[]}
@@ -0,0 +1,63 @@
1
+ import { entityKind } from "../entity.cjs";
2
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.cjs";
3
+ import { type Query, type SQL } from "../sql/sql.cjs";
4
+ import type { Assume, Equal } from "../utils.cjs";
5
+ import { MsSqlDatabase } from "./db.cjs";
6
+ import type { MsSqlDialect } from "./dialect.cjs";
7
+ import type { SelectedFieldsOrdered } from "./query-builders/select.types.cjs";
8
+ export interface QueryResultHKT {
9
+ readonly $brand: 'MsSqlQueryRowHKT';
10
+ readonly row: unknown;
11
+ readonly type: unknown;
12
+ }
13
+ export interface AnyQueryResultHKT extends QueryResultHKT {
14
+ readonly type: any;
15
+ }
16
+ export type QueryResultKind<TKind extends QueryResultHKT, TRow> = (TKind & {
17
+ readonly row: TRow;
18
+ })['type'];
19
+ export interface PreparedQueryConfig {
20
+ execute: unknown;
21
+ iterator: unknown;
22
+ }
23
+ export interface PreparedQueryHKT {
24
+ readonly $brand: 'MsSqlPreparedQueryHKT';
25
+ readonly config: unknown;
26
+ readonly type: unknown;
27
+ }
28
+ export type PreparedQueryKind<TKind extends PreparedQueryHKT, TConfig extends PreparedQueryConfig, TAssume extends boolean = false> = Equal<TAssume, true> extends true ? Assume<(TKind & {
29
+ readonly config: TConfig;
30
+ })['type'], PreparedQuery<TConfig>> : (TKind & {
31
+ readonly config: TConfig;
32
+ })['type'];
33
+ export declare abstract class PreparedQuery<T extends PreparedQueryConfig> {
34
+ static readonly [entityKind]: string;
35
+ abstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
36
+ abstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
37
+ }
38
+ export interface MsSqlTransactionConfig {
39
+ isolationLevel: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable' | 'snapshot';
40
+ }
41
+ export declare abstract class MsSqlSession<TQueryResult extends QueryResultHKT = QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> {
42
+ protected dialect: MsSqlDialect;
43
+ static readonly [entityKind]: string;
44
+ constructor(dialect: MsSqlDialect);
45
+ abstract prepareQuery<T extends PreparedQueryConfig, TPreparedQueryHKT extends PreparedQueryHKT>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQueryKind<TPreparedQueryHKT, T>;
46
+ execute<T>(query: SQL): Promise<T>;
47
+ abstract all<T = unknown>(query: SQL): Promise<T[]>;
48
+ abstract transaction<T>(transaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>, config?: MsSqlTransactionConfig): Promise<T>;
49
+ protected getSetTransactionSQL(config: MsSqlTransactionConfig): SQL | undefined;
50
+ protected getStartTransactionSQL(_config: MsSqlTransactionConfig): SQL | undefined;
51
+ }
52
+ export declare abstract class MsSqlTransaction<TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends MsSqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {
53
+ protected schema: RelationalSchemaConfig<TSchema> | undefined;
54
+ protected readonly nestedIndex: number;
55
+ static readonly [entityKind]: string;
56
+ constructor(dialect: MsSqlDialect, session: MsSqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number);
57
+ rollback(): never;
58
+ /** Nested transactions (aka savepoints) only work with InnoDB engine. */
59
+ abstract transaction<T>(transaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
60
+ }
61
+ export interface PreparedQueryHKTBase extends PreparedQueryHKT {
62
+ type: PreparedQuery<Assume<this['config'], PreparedQueryConfig>>;
63
+ }
@@ -0,0 +1,63 @@
1
+ import { entityKind } from "../entity.js";
2
+ import type { RelationalSchemaConfig, TablesRelationalConfig } from "../relations.js";
3
+ import { type Query, type SQL } from "../sql/sql.js";
4
+ import type { Assume, Equal } from "../utils.js";
5
+ import { MsSqlDatabase } from "./db.js";
6
+ import type { MsSqlDialect } from "./dialect.js";
7
+ import type { SelectedFieldsOrdered } from "./query-builders/select.types.js";
8
+ export interface QueryResultHKT {
9
+ readonly $brand: 'MsSqlQueryRowHKT';
10
+ readonly row: unknown;
11
+ readonly type: unknown;
12
+ }
13
+ export interface AnyQueryResultHKT extends QueryResultHKT {
14
+ readonly type: any;
15
+ }
16
+ export type QueryResultKind<TKind extends QueryResultHKT, TRow> = (TKind & {
17
+ readonly row: TRow;
18
+ })['type'];
19
+ export interface PreparedQueryConfig {
20
+ execute: unknown;
21
+ iterator: unknown;
22
+ }
23
+ export interface PreparedQueryHKT {
24
+ readonly $brand: 'MsSqlPreparedQueryHKT';
25
+ readonly config: unknown;
26
+ readonly type: unknown;
27
+ }
28
+ export type PreparedQueryKind<TKind extends PreparedQueryHKT, TConfig extends PreparedQueryConfig, TAssume extends boolean = false> = Equal<TAssume, true> extends true ? Assume<(TKind & {
29
+ readonly config: TConfig;
30
+ })['type'], PreparedQuery<TConfig>> : (TKind & {
31
+ readonly config: TConfig;
32
+ })['type'];
33
+ export declare abstract class PreparedQuery<T extends PreparedQueryConfig> {
34
+ static readonly [entityKind]: string;
35
+ abstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
36
+ abstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;
37
+ }
38
+ export interface MsSqlTransactionConfig {
39
+ isolationLevel: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable' | 'snapshot';
40
+ }
41
+ export declare abstract class MsSqlSession<TQueryResult extends QueryResultHKT = QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> {
42
+ protected dialect: MsSqlDialect;
43
+ static readonly [entityKind]: string;
44
+ constructor(dialect: MsSqlDialect);
45
+ abstract prepareQuery<T extends PreparedQueryConfig, TPreparedQueryHKT extends PreparedQueryHKT>(query: Query, fields: SelectedFieldsOrdered | undefined, customResultMapper?: (rows: unknown[][]) => T['execute']): PreparedQueryKind<TPreparedQueryHKT, T>;
46
+ execute<T>(query: SQL): Promise<T>;
47
+ abstract all<T = unknown>(query: SQL): Promise<T[]>;
48
+ abstract transaction<T>(transaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>, config?: MsSqlTransactionConfig): Promise<T>;
49
+ protected getSetTransactionSQL(config: MsSqlTransactionConfig): SQL | undefined;
50
+ protected getStartTransactionSQL(_config: MsSqlTransactionConfig): SQL | undefined;
51
+ }
52
+ export declare abstract class MsSqlTransaction<TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = Record<string, never>, TSchema extends TablesRelationalConfig = Record<string, never>> extends MsSqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {
53
+ protected schema: RelationalSchemaConfig<TSchema> | undefined;
54
+ protected readonly nestedIndex: number;
55
+ static readonly [entityKind]: string;
56
+ constructor(dialect: MsSqlDialect, session: MsSqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number);
57
+ rollback(): never;
58
+ /** Nested transactions (aka savepoints) only work with InnoDB engine. */
59
+ abstract transaction<T>(transaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
60
+ }
61
+ export interface PreparedQueryHKTBase extends PreparedQueryHKT {
62
+ type: PreparedQuery<Assume<this['config'], PreparedQueryConfig>>;
63
+ }