drizzle-orm 1.0.0-beta.22-eaa25cd → 1.0.0-beta.22-46020ee

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 (431) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/aws-data-api/pg/codecs.cjs +162 -0
  4. package/aws-data-api/pg/codecs.cjs.map +1 -0
  5. package/aws-data-api/pg/codecs.d.cts +9 -0
  6. package/aws-data-api/pg/codecs.d.ts +9 -0
  7. package/aws-data-api/pg/codecs.js +160 -0
  8. package/aws-data-api/pg/codecs.js.map +1 -0
  9. package/aws-data-api/pg/driver.cjs +4 -157
  10. package/aws-data-api/pg/driver.cjs.map +1 -1
  11. package/aws-data-api/pg/driver.d.cts +1 -5
  12. package/aws-data-api/pg/driver.d.ts +1 -5
  13. package/aws-data-api/pg/driver.js +4 -156
  14. package/aws-data-api/pg/driver.js.map +1 -1
  15. package/aws-data-api/pg/index.cjs +2 -1
  16. package/aws-data-api/pg/index.d.cts +2 -1
  17. package/aws-data-api/pg/index.d.ts +2 -1
  18. package/aws-data-api/pg/index.js +2 -1
  19. package/better-sqlite3/driver.cjs +2 -1
  20. package/better-sqlite3/driver.cjs.map +1 -1
  21. package/better-sqlite3/driver.js +2 -1
  22. package/better-sqlite3/driver.js.map +1 -1
  23. package/better-sqlite3/session.cjs +8 -8
  24. package/better-sqlite3/session.cjs.map +1 -1
  25. package/better-sqlite3/session.d.cts +3 -3
  26. package/better-sqlite3/session.d.ts +3 -3
  27. package/better-sqlite3/session.js +8 -8
  28. package/better-sqlite3/session.js.map +1 -1
  29. package/bun-sql/mysql/driver.cjs +2 -1
  30. package/bun-sql/mysql/driver.cjs.map +1 -1
  31. package/bun-sql/mysql/driver.js +2 -1
  32. package/bun-sql/mysql/driver.js.map +1 -1
  33. package/bun-sql/mysql/session.cjs +8 -8
  34. package/bun-sql/mysql/session.cjs.map +1 -1
  35. package/bun-sql/mysql/session.d.cts +3 -3
  36. package/bun-sql/mysql/session.d.ts +3 -3
  37. package/bun-sql/mysql/session.js +8 -8
  38. package/bun-sql/mysql/session.js.map +1 -1
  39. package/bun-sql/postgres/codecs.cjs +176 -0
  40. package/bun-sql/postgres/codecs.cjs.map +1 -0
  41. package/bun-sql/postgres/codecs.d.cts +9 -0
  42. package/bun-sql/postgres/codecs.d.ts +9 -0
  43. package/bun-sql/postgres/codecs.js +174 -0
  44. package/bun-sql/postgres/codecs.js.map +1 -0
  45. package/bun-sql/postgres/driver.cjs +4 -171
  46. package/bun-sql/postgres/driver.cjs.map +1 -1
  47. package/bun-sql/postgres/driver.d.cts +1 -5
  48. package/bun-sql/postgres/driver.d.ts +1 -5
  49. package/bun-sql/postgres/driver.js +4 -170
  50. package/bun-sql/postgres/driver.js.map +1 -1
  51. package/bun-sql/postgres/index.cjs +2 -1
  52. package/bun-sql/postgres/index.d.cts +2 -1
  53. package/bun-sql/postgres/index.d.ts +2 -1
  54. package/bun-sql/postgres/index.js +2 -1
  55. package/bun-sql/sqlite/driver.cjs +2 -1
  56. package/bun-sql/sqlite/driver.cjs.map +1 -1
  57. package/bun-sql/sqlite/driver.js +2 -1
  58. package/bun-sql/sqlite/driver.js.map +1 -1
  59. package/bun-sql/sqlite/session.cjs +8 -8
  60. package/bun-sql/sqlite/session.cjs.map +1 -1
  61. package/bun-sql/sqlite/session.d.cts +3 -3
  62. package/bun-sql/sqlite/session.d.ts +3 -3
  63. package/bun-sql/sqlite/session.js +8 -8
  64. package/bun-sql/sqlite/session.js.map +1 -1
  65. package/bun-sqlite/driver.cjs +2 -1
  66. package/bun-sqlite/driver.cjs.map +1 -1
  67. package/bun-sqlite/driver.js +2 -1
  68. package/bun-sqlite/driver.js.map +1 -1
  69. package/bun-sqlite/session.cjs +8 -8
  70. package/bun-sqlite/session.cjs.map +1 -1
  71. package/bun-sqlite/session.d.cts +3 -3
  72. package/bun-sqlite/session.d.ts +3 -3
  73. package/bun-sqlite/session.js +8 -8
  74. package/bun-sqlite/session.js.map +1 -1
  75. package/cockroach/driver.cjs +3 -2
  76. package/cockroach/driver.cjs.map +1 -1
  77. package/cockroach/driver.d.cts +1 -1
  78. package/cockroach/driver.d.ts +1 -1
  79. package/cockroach/driver.js +3 -2
  80. package/cockroach/driver.js.map +1 -1
  81. package/cockroach/session.cjs +4 -4
  82. package/cockroach/session.cjs.map +1 -1
  83. package/cockroach/session.d.cts +3 -3
  84. package/cockroach/session.d.ts +3 -3
  85. package/cockroach/session.js +4 -4
  86. package/cockroach/session.js.map +1 -1
  87. package/durable-sqlite/driver.cjs +2 -1
  88. package/durable-sqlite/driver.cjs.map +1 -1
  89. package/durable-sqlite/driver.js +2 -1
  90. package/durable-sqlite/driver.js.map +1 -1
  91. package/durable-sqlite/session.cjs +8 -8
  92. package/durable-sqlite/session.cjs.map +1 -1
  93. package/durable-sqlite/session.d.cts +3 -3
  94. package/durable-sqlite/session.d.ts +3 -3
  95. package/durable-sqlite/session.js +8 -8
  96. package/durable-sqlite/session.js.map +1 -1
  97. package/effect-postgres/codecs.cjs +175 -0
  98. package/effect-postgres/codecs.cjs.map +1 -0
  99. package/effect-postgres/codecs.d.cts +9 -0
  100. package/effect-postgres/codecs.d.ts +9 -0
  101. package/effect-postgres/codecs.js +173 -0
  102. package/effect-postgres/codecs.js.map +1 -0
  103. package/effect-postgres/driver.cjs +5 -171
  104. package/effect-postgres/driver.cjs.map +1 -1
  105. package/effect-postgres/driver.d.cts +3 -7
  106. package/effect-postgres/driver.d.ts +3 -7
  107. package/effect-postgres/driver.js +5 -170
  108. package/effect-postgres/driver.js.map +1 -1
  109. package/effect-postgres/index.cjs +2 -1
  110. package/effect-postgres/index.d.cts +2 -1
  111. package/effect-postgres/index.d.ts +2 -1
  112. package/effect-postgres/index.js +2 -1
  113. package/effect-postgres/migrator.d.cts +1 -1
  114. package/effect-postgres/migrator.d.ts +1 -1
  115. package/effect-postgres/session.cjs.map +1 -1
  116. package/effect-postgres/session.d.cts +1 -1
  117. package/effect-postgres/session.d.ts +1 -1
  118. package/effect-postgres/session.js.map +1 -1
  119. package/expo-sqlite/driver.cjs +2 -1
  120. package/expo-sqlite/driver.cjs.map +1 -1
  121. package/expo-sqlite/driver.js +2 -1
  122. package/expo-sqlite/driver.js.map +1 -1
  123. package/expo-sqlite/session.cjs +8 -8
  124. package/expo-sqlite/session.cjs.map +1 -1
  125. package/expo-sqlite/session.d.cts +3 -3
  126. package/expo-sqlite/session.d.ts +3 -3
  127. package/expo-sqlite/session.js +8 -8
  128. package/expo-sqlite/session.js.map +1 -1
  129. package/index.cjs +1 -0
  130. package/index.js +2 -2
  131. package/libsql/driver-core.cjs +2 -1
  132. package/libsql/driver-core.cjs.map +1 -1
  133. package/libsql/driver-core.js +2 -1
  134. package/libsql/driver-core.js.map +1 -1
  135. package/libsql/session.cjs +8 -8
  136. package/libsql/session.cjs.map +1 -1
  137. package/libsql/session.d.cts +3 -3
  138. package/libsql/session.d.ts +3 -3
  139. package/libsql/session.js +8 -8
  140. package/libsql/session.js.map +1 -1
  141. package/mysql-proxy/driver.cjs +2 -1
  142. package/mysql-proxy/driver.cjs.map +1 -1
  143. package/mysql-proxy/driver.js +2 -1
  144. package/mysql-proxy/driver.js.map +1 -1
  145. package/mysql-proxy/session.cjs +6 -6
  146. package/mysql-proxy/session.cjs.map +1 -1
  147. package/mysql-proxy/session.d.cts +3 -3
  148. package/mysql-proxy/session.d.ts +3 -3
  149. package/mysql-proxy/session.js +6 -6
  150. package/mysql-proxy/session.js.map +1 -1
  151. package/mysql2/driver.cjs +2 -1
  152. package/mysql2/driver.cjs.map +1 -1
  153. package/mysql2/driver.d.cts +1 -1
  154. package/mysql2/driver.d.ts +1 -1
  155. package/mysql2/driver.js +2 -1
  156. package/mysql2/driver.js.map +1 -1
  157. package/mysql2/session.cjs +7 -7
  158. package/mysql2/session.cjs.map +1 -1
  159. package/mysql2/session.d.cts +3 -3
  160. package/mysql2/session.d.ts +3 -3
  161. package/mysql2/session.js +7 -7
  162. package/mysql2/session.js.map +1 -1
  163. package/neon-http/codecs.cjs +66 -0
  164. package/neon-http/codecs.cjs.map +1 -0
  165. package/neon-http/codecs.d.cts +9 -0
  166. package/neon-http/codecs.d.ts +9 -0
  167. package/neon-http/codecs.js +64 -0
  168. package/neon-http/codecs.js.map +1 -0
  169. package/neon-http/driver.cjs +4 -61
  170. package/neon-http/driver.cjs.map +1 -1
  171. package/neon-http/driver.d.cts +1 -5
  172. package/neon-http/driver.d.ts +1 -5
  173. package/neon-http/driver.js +4 -60
  174. package/neon-http/driver.js.map +1 -1
  175. package/neon-http/index.cjs +2 -1
  176. package/neon-http/index.d.cts +2 -1
  177. package/neon-http/index.d.ts +2 -1
  178. package/neon-http/index.js +2 -1
  179. package/neon-serverless/codecs.cjs +65 -0
  180. package/neon-serverless/codecs.cjs.map +1 -0
  181. package/neon-serverless/codecs.d.cts +9 -0
  182. package/neon-serverless/codecs.d.ts +9 -0
  183. package/neon-serverless/codecs.js +63 -0
  184. package/neon-serverless/codecs.js.map +1 -0
  185. package/neon-serverless/driver.cjs +4 -60
  186. package/neon-serverless/driver.cjs.map +1 -1
  187. package/neon-serverless/driver.d.cts +2 -6
  188. package/neon-serverless/driver.d.ts +2 -6
  189. package/neon-serverless/driver.js +4 -59
  190. package/neon-serverless/driver.js.map +1 -1
  191. package/neon-serverless/index.cjs +2 -1
  192. package/neon-serverless/index.d.cts +2 -1
  193. package/neon-serverless/index.d.ts +2 -1
  194. package/neon-serverless/index.js +2 -1
  195. package/netlify-db/codecs.cjs +122 -0
  196. package/netlify-db/codecs.cjs.map +1 -0
  197. package/netlify-db/codecs.d.cts +10 -0
  198. package/netlify-db/codecs.d.ts +10 -0
  199. package/netlify-db/codecs.js +119 -0
  200. package/netlify-db/codecs.js.map +1 -0
  201. package/netlify-db/driver.cjs +4 -118
  202. package/netlify-db/driver.cjs.map +1 -1
  203. package/netlify-db/driver.d.cts +1 -6
  204. package/netlify-db/driver.d.ts +1 -6
  205. package/netlify-db/driver.js +4 -116
  206. package/netlify-db/driver.js.map +1 -1
  207. package/netlify-db/index.cjs +3 -2
  208. package/netlify-db/index.d.cts +2 -1
  209. package/netlify-db/index.d.ts +2 -1
  210. package/netlify-db/index.js +2 -1
  211. package/netlify-db/session.d.ts +1 -1
  212. package/node-mssql/driver.cjs +3 -2
  213. package/node-mssql/driver.cjs.map +1 -1
  214. package/node-mssql/driver.d.cts +1 -1
  215. package/node-mssql/driver.d.ts +1 -1
  216. package/node-mssql/driver.js +3 -2
  217. package/node-mssql/driver.js.map +1 -1
  218. package/node-mssql/session.cjs +5 -5
  219. package/node-mssql/session.cjs.map +1 -1
  220. package/node-mssql/session.d.cts +3 -3
  221. package/node-mssql/session.d.ts +3 -3
  222. package/node-mssql/session.js +5 -5
  223. package/node-mssql/session.js.map +1 -1
  224. package/node-postgres/codecs.cjs +65 -0
  225. package/node-postgres/codecs.cjs.map +1 -0
  226. package/node-postgres/codecs.d.cts +9 -0
  227. package/node-postgres/codecs.d.ts +9 -0
  228. package/node-postgres/codecs.js +63 -0
  229. package/node-postgres/codecs.js.map +1 -0
  230. package/node-postgres/driver.cjs +4 -60
  231. package/node-postgres/driver.cjs.map +1 -1
  232. package/node-postgres/driver.d.cts +1 -5
  233. package/node-postgres/driver.d.ts +1 -5
  234. package/node-postgres/driver.js +4 -59
  235. package/node-postgres/driver.js.map +1 -1
  236. package/node-postgres/index.cjs +2 -1
  237. package/node-postgres/index.d.cts +2 -1
  238. package/node-postgres/index.d.ts +2 -1
  239. package/node-postgres/index.js +2 -1
  240. package/node-sqlite/driver.cjs +5 -1
  241. package/node-sqlite/driver.cjs.map +1 -1
  242. package/node-sqlite/driver.js +5 -1
  243. package/node-sqlite/driver.js.map +1 -1
  244. package/node-sqlite/session.cjs +14 -8
  245. package/node-sqlite/session.cjs.map +1 -1
  246. package/node-sqlite/session.d.cts +8 -3
  247. package/node-sqlite/session.d.ts +8 -3
  248. package/node-sqlite/session.js +15 -9
  249. package/node-sqlite/session.js.map +1 -1
  250. package/op-sqlite/driver.cjs +2 -1
  251. package/op-sqlite/driver.cjs.map +1 -1
  252. package/op-sqlite/driver.js +2 -1
  253. package/op-sqlite/driver.js.map +1 -1
  254. package/op-sqlite/session.cjs +8 -8
  255. package/op-sqlite/session.cjs.map +1 -1
  256. package/op-sqlite/session.d.cts +3 -3
  257. package/op-sqlite/session.d.ts +3 -3
  258. package/op-sqlite/session.js +8 -8
  259. package/op-sqlite/session.js.map +1 -1
  260. package/package.json +133 -1
  261. package/pg-core/effect/session.d.cts +1 -1
  262. package/pg-core/effect/session.d.ts +1 -1
  263. package/pg-proxy/driver.cjs +4 -4
  264. package/pg-proxy/driver.cjs.map +1 -1
  265. package/pg-proxy/driver.d.ts +1 -1
  266. package/pg-proxy/driver.js +4 -4
  267. package/pg-proxy/driver.js.map +1 -1
  268. package/pg-proxy/session.cjs.map +1 -1
  269. package/pg-proxy/session.d.cts +0 -1
  270. package/pg-proxy/session.d.ts +0 -1
  271. package/pg-proxy/session.js.map +1 -1
  272. package/pglite/codecs.cjs +92 -0
  273. package/pglite/codecs.cjs.map +1 -0
  274. package/pglite/codecs.d.cts +9 -0
  275. package/pglite/codecs.d.ts +9 -0
  276. package/pglite/codecs.js +90 -0
  277. package/pglite/codecs.js.map +1 -0
  278. package/pglite/driver.cjs +3 -86
  279. package/pglite/driver.cjs.map +1 -1
  280. package/pglite/driver.d.cts +1 -5
  281. package/pglite/driver.d.ts +1 -5
  282. package/pglite/driver.js +4 -86
  283. package/pglite/driver.js.map +1 -1
  284. package/pglite/index.cjs +2 -1
  285. package/pglite/index.d.cts +2 -1
  286. package/pglite/index.d.ts +2 -1
  287. package/pglite/index.js +2 -1
  288. package/planetscale-serverless/driver.cjs +2 -1
  289. package/planetscale-serverless/driver.cjs.map +1 -1
  290. package/planetscale-serverless/driver.d.cts +1 -1
  291. package/planetscale-serverless/driver.d.ts +1 -1
  292. package/planetscale-serverless/driver.js +2 -1
  293. package/planetscale-serverless/driver.js.map +1 -1
  294. package/planetscale-serverless/session.cjs +6 -6
  295. package/planetscale-serverless/session.cjs.map +1 -1
  296. package/planetscale-serverless/session.d.cts +3 -3
  297. package/planetscale-serverless/session.d.ts +3 -3
  298. package/planetscale-serverless/session.js +6 -6
  299. package/planetscale-serverless/session.js.map +1 -1
  300. package/postgres-js/codecs.cjs +147 -0
  301. package/postgres-js/codecs.cjs.map +1 -0
  302. package/postgres-js/codecs.d.cts +9 -0
  303. package/postgres-js/codecs.d.ts +9 -0
  304. package/postgres-js/codecs.js +145 -0
  305. package/postgres-js/codecs.js.map +1 -0
  306. package/postgres-js/driver.cjs +4 -142
  307. package/postgres-js/driver.cjs.map +1 -1
  308. package/postgres-js/driver.d.cts +1 -5
  309. package/postgres-js/driver.d.ts +1 -5
  310. package/postgres-js/driver.js +4 -141
  311. package/postgres-js/driver.js.map +1 -1
  312. package/postgres-js/index.cjs +2 -1
  313. package/postgres-js/index.d.cts +2 -1
  314. package/postgres-js/index.d.ts +2 -1
  315. package/postgres-js/index.js +2 -1
  316. package/singlestore/driver.cjs +3 -2
  317. package/singlestore/driver.cjs.map +1 -1
  318. package/singlestore/driver.d.cts +1 -1
  319. package/singlestore/driver.d.ts +1 -1
  320. package/singlestore/driver.js +3 -2
  321. package/singlestore/driver.js.map +1 -1
  322. package/singlestore/session.cjs +7 -7
  323. package/singlestore/session.cjs.map +1 -1
  324. package/singlestore/session.d.cts +3 -3
  325. package/singlestore/session.d.ts +3 -3
  326. package/singlestore/session.js +7 -7
  327. package/singlestore/session.js.map +1 -1
  328. package/singlestore-proxy/driver.cjs +2 -1
  329. package/singlestore-proxy/driver.cjs.map +1 -1
  330. package/singlestore-proxy/driver.js +2 -1
  331. package/singlestore-proxy/driver.js.map +1 -1
  332. package/singlestore-proxy/session.cjs +6 -6
  333. package/singlestore-proxy/session.cjs.map +1 -1
  334. package/singlestore-proxy/session.d.cts +3 -3
  335. package/singlestore-proxy/session.d.ts +3 -3
  336. package/singlestore-proxy/session.js +6 -6
  337. package/singlestore-proxy/session.js.map +1 -1
  338. package/sql-js/driver.cjs +2 -1
  339. package/sql-js/driver.cjs.map +1 -1
  340. package/sql-js/driver.js +2 -1
  341. package/sql-js/driver.js.map +1 -1
  342. package/sql-js/session.cjs +8 -8
  343. package/sql-js/session.cjs.map +1 -1
  344. package/sql-js/session.d.cts +3 -3
  345. package/sql-js/session.d.ts +3 -3
  346. package/sql-js/session.js +8 -8
  347. package/sql-js/session.js.map +1 -1
  348. package/sqlite-cloud/driver.cjs +2 -1
  349. package/sqlite-cloud/driver.cjs.map +1 -1
  350. package/sqlite-cloud/driver.js +2 -1
  351. package/sqlite-cloud/driver.js.map +1 -1
  352. package/sqlite-cloud/session.cjs +8 -8
  353. package/sqlite-cloud/session.cjs.map +1 -1
  354. package/sqlite-cloud/session.d.cts +3 -3
  355. package/sqlite-cloud/session.d.ts +3 -3
  356. package/sqlite-cloud/session.js +8 -8
  357. package/sqlite-cloud/session.js.map +1 -1
  358. package/sqlite-proxy/driver.cjs +2 -1
  359. package/sqlite-proxy/driver.cjs.map +1 -1
  360. package/sqlite-proxy/driver.js +2 -1
  361. package/sqlite-proxy/driver.js.map +1 -1
  362. package/sqlite-proxy/session.cjs +8 -8
  363. package/sqlite-proxy/session.cjs.map +1 -1
  364. package/sqlite-proxy/session.d.cts +3 -3
  365. package/sqlite-proxy/session.d.ts +3 -3
  366. package/sqlite-proxy/session.js +8 -8
  367. package/sqlite-proxy/session.js.map +1 -1
  368. package/tidb-serverless/driver.cjs +2 -1
  369. package/tidb-serverless/driver.cjs.map +1 -1
  370. package/tidb-serverless/driver.d.cts +1 -1
  371. package/tidb-serverless/driver.d.ts +1 -1
  372. package/tidb-serverless/driver.js +2 -1
  373. package/tidb-serverless/driver.js.map +1 -1
  374. package/tidb-serverless/session.cjs +6 -6
  375. package/tidb-serverless/session.cjs.map +1 -1
  376. package/tidb-serverless/session.d.cts +3 -3
  377. package/tidb-serverless/session.d.ts +3 -3
  378. package/tidb-serverless/session.js +6 -6
  379. package/tidb-serverless/session.js.map +1 -1
  380. package/tursodatabase/driver-core.cjs +2 -1
  381. package/tursodatabase/driver-core.cjs.map +1 -1
  382. package/tursodatabase/driver-core.js +2 -1
  383. package/tursodatabase/driver-core.js.map +1 -1
  384. package/tursodatabase/session.cjs +8 -8
  385. package/tursodatabase/session.cjs.map +1 -1
  386. package/tursodatabase/session.d.cts +3 -3
  387. package/tursodatabase/session.d.ts +3 -3
  388. package/tursodatabase/session.js +8 -8
  389. package/tursodatabase/session.js.map +1 -1
  390. package/utils.cjs +17 -0
  391. package/utils.cjs.map +1 -1
  392. package/utils.js +17 -1
  393. package/utils.js.map +1 -1
  394. package/vercel-postgres/codecs.cjs +65 -0
  395. package/vercel-postgres/codecs.cjs.map +1 -0
  396. package/vercel-postgres/codecs.d.cts +9 -0
  397. package/vercel-postgres/codecs.d.ts +9 -0
  398. package/vercel-postgres/codecs.js +63 -0
  399. package/vercel-postgres/codecs.js.map +1 -0
  400. package/vercel-postgres/driver.cjs +3 -60
  401. package/vercel-postgres/driver.cjs.map +1 -1
  402. package/vercel-postgres/driver.d.cts +1 -5
  403. package/vercel-postgres/driver.d.ts +1 -5
  404. package/vercel-postgres/driver.js +4 -60
  405. package/vercel-postgres/driver.js.map +1 -1
  406. package/vercel-postgres/index.cjs +2 -1
  407. package/vercel-postgres/index.d.cts +2 -1
  408. package/vercel-postgres/index.d.ts +2 -1
  409. package/vercel-postgres/index.js +2 -1
  410. package/version.cjs +1 -1
  411. package/version.cjs.map +1 -1
  412. package/version.d.cts +1 -1
  413. package/version.d.ts +1 -1
  414. package/version.js +1 -1
  415. package/version.js.map +1 -1
  416. package/xata-http/codecs.cjs +168 -0
  417. package/xata-http/codecs.cjs.map +1 -0
  418. package/xata-http/codecs.d.cts +9 -0
  419. package/xata-http/codecs.d.ts +9 -0
  420. package/xata-http/codecs.js +166 -0
  421. package/xata-http/codecs.js.map +1 -0
  422. package/xata-http/driver.cjs +4 -163
  423. package/xata-http/driver.cjs.map +1 -1
  424. package/xata-http/driver.d.cts +1 -5
  425. package/xata-http/driver.d.ts +1 -5
  426. package/xata-http/driver.js +4 -162
  427. package/xata-http/driver.js.map +1 -1
  428. package/xata-http/index.cjs +2 -1
  429. package/xata-http/index.d.cts +2 -1
  430. package/xata-http/index.d.ts +2 -1
  431. package/xata-http/index.js +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["MySqlDatabase"],"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import type { Connection as CallbackConnection, Pool as CallbackPool } from 'mysql2';\nimport { type Connection, createPool, type Pool, type PoolOptions } from 'mysql2/promise';\nimport * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { DrizzleError } from '../errors.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\trelations: AnyRelations,\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, AnyRelations, V1.TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tmode,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport class MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'MySql2Database';\n}\n\nexport type MySql2DrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = Pool,\n>(\n\tclient: TClient,\n\tconfig: MySql2DrizzleConfig<TSchema, TRelations> = {},\n): MySql2Database<TSchema, TRelations> & {\n\t$client: AnyMySql2Connection extends TClient ? Pool : TClient;\n} {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst driver = new MySql2Driver(clientForInstance as MySql2Client, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMapper: config.useJitMappers,\n\t});\n\tconst session = driver.createSession(relations, schema, mode);\n\tconst db = new MySql2Database(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t\tmode,\n\t) as MySql2Database<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnyMySql2Connection = Pool | Connection | CallbackPool | CallbackConnection;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnyMySql2Connection = Pool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tMySql2DrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& MySql2DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): MySql2Database<TSchema, TRelations> & {\n\t$client: AnyMySql2Connection extends TClient ? Pool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& MySql2DrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string'\n\t\t? createPool({\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t})\n\t\t: createPool(connection!);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: MySql2DrizzleConfig<TSchema, TRelations>,\n\t): MySql2Database<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;AAsBA,IAAa,eAAb,MAA0B;CACzB,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAA8B,EAAE,EACvC;EAHO;EACA;EACA;;CAIT,cACC,WACA,QACA,MACkF;AAClF,SAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACtE,QAAQ,KAAK,QAAQ;GACrB;GACA,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,iBAAb,cAGUA,gBAAiF;CAC1F,QAA0B,cAAsB;;AAUjD,SAAS,UAKR,QACA,SAAmD,EAAE,EAGpD;CACD,MAAM,UAAU,IAAI,cAAc;CAClC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;AAClB,MAAI,OAAO,SAAS,OACnB,OAAM,IAAI,aAAa,EACtB,SACC,4IACD,CAAC;EAGH,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,OAAO,OAAO,QAAQ;CAE5B,MAAM,YAAY,OAAO,aAAa,EAAE;CAOxC,MAAM,KAAK,IAAI,eACd,SAPc,IAAI,aAAa,mBAAmC,SAAS;EAC3E;EACA,OAAO,OAAO;EACd,cAAc,OAAO;EACrB,CAAC,CACqB,cAAc,WAAW,QAAQ,KAAK,EAI5D,WACA,QACA,KACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAKhC,SAAO,UAJU,WAAW,EAC3B,KAAK,kBACL,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAUnD,QAFW,UANM,OAAO,eAAe,WACpC,WAAW;EACZ,KAAK;EACL,mBAAmB;EACnB,CAAC,GACA,WAAW,WAAY,EACK,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
1
+ {"version":3,"file":"driver.js","names":["MySqlDatabase"],"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import type { Connection as CallbackConnection, Pool as CallbackPool } from 'mysql2';\nimport { type Connection, createPool, type Pool, type PoolOptions } from 'mysql2/promise';\nimport * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/index.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { DrizzleError } from '../errors.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\trelations: AnyRelations,\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, AnyRelations, V1.TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, relations, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tmode,\n\t\t\tcache: this.options.cache,\n\t\t});\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport class MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'MySql2Database';\n}\n\nexport type MySql2DrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> =\n\t& Omit<DrizzleConfig<TSchema, TRelations>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = Pool,\n>(\n\tclient: TClient,\n\tconfig: MySql2DrizzleConfig<TSchema, TRelations> = {},\n): MySql2Database<TSchema, TRelations> & {\n\t$client: AnyMySql2Connection extends TClient ? Pool : TClient;\n} {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst driver = new MySql2Driver(clientForInstance as MySql2Client, dialect, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\tconst session = driver.createSession(relations, schema, mode);\n\tconst db = new MySql2Database(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t\tmode,\n\t) as MySql2Database<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnyMySql2Connection = Pool | Connection | CallbackPool | CallbackConnection;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AnyMySql2Connection = Pool,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tMySql2DrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& MySql2DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | PoolOptions;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): MySql2Database<TSchema, TRelations> & {\n\t$client: AnyMySql2Connection extends TClient ? Pool : TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst connectionString = params[0]!;\n\t\tconst instance = createPool({\n\t\t\turi: connectionString,\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t& MySql2DrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string'\n\t\t? createPool({\n\t\t\turi: connection,\n\t\t\tsupportBigNumbers: true,\n\t\t})\n\t\t: createPool(connection!);\n\tconst db = construct(instance, drizzleConfig);\n\n\treturn db as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: MySql2DrizzleConfig<TSchema, TRelations>,\n\t): MySql2Database<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;AAsBA,IAAa,eAAb,MAA0B;CACzB,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAA8B,EAAE,EACvC;EAHO;EACA;EACA;;CAIT,cACC,WACA,QACA,MACkF;AAClF,SAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,WAAW,QAAQ;GACtE,QAAQ,KAAK,QAAQ;GACrB;GACA,OAAO,KAAK,QAAQ;GACpB,CAAC;;;AAMJ,IAAa,iBAAb,cAGUA,gBAAiF;CAC1F,QAA0B,cAAsB;;AAUjD,SAAS,UAKR,QACA,SAAmD,EAAE,EAGpD;CACD,MAAM,UAAU,IAAI,cAAc;CAClC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,oBAAoB,iBAAiB,OAAO,GAAG,OAAO,SAAS,GAAG;CAExE,IAAI;AACJ,KAAI,OAAO,QAAQ;AAClB,MAAI,OAAO,SAAS,OACnB,OAAM,IAAI,aAAa,EACtB,SACC,4IACD,CAAC;EAGH,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,OAAO,OAAO,QAAQ;CAE5B,MAAM,YAAY,OAAO,aAAa,EAAE;CAOxC,MAAM,KAAK,IAAI,eACd,SAPc,IAAI,aAAa,mBAAmC,SAAS;EAC3E;EACA,OAAO,OAAO;EACd,eAAe,eAAe,OAAO,cAAc;EACnD,CAAC,CACqB,cAAc,WAAW,QAAQ,KAAK,EAI5D,WACA,QACA,KACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAOR,SAAS,iBAAiB,QAAuC;AAChE,QAAO,OAAO,OAAO,YAAY;;AAKlC,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,UAAU;EAClC,MAAM,mBAAmB,OAAO;AAKhC,SAAO,UAJU,WAAW,EAC3B,KAAK,kBACL,CAAC,EAEyB,OAAO,GAAG;;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAUnD,QAFW,UANM,OAAO,eAAe,WACpC,WAAW;EACZ,KAAK;EACL,mBAAmB;EACnB,CAAC,GACA,WAAW,WAAY,EACK,cAAc;;;CAMtC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
@@ -16,13 +16,13 @@ var MySql2PreparedQuery = class extends __mysql_core_session_ts.MySqlPreparedQue
16
16
  rawQuery;
17
17
  query;
18
18
  jitMapper;
19
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMapper, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
19
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMappers, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
20
20
  super(cache, queryMetadata, cacheConfig);
21
21
  this.client = client;
22
22
  this.params = params;
23
23
  this.logger = logger;
24
24
  this.fields = fields;
25
- this.useJitMapper = useJitMapper;
25
+ this.useJitMappers = useJitMappers;
26
26
  this.customResultMapper = customResultMapper;
27
27
  this.generatedIds = generatedIds;
28
28
  this.returningIds = returningIds;
@@ -76,7 +76,7 @@ var MySql2PreparedQuery = class extends __mysql_core_session_ts.MySqlPreparedQue
76
76
  return await client.query(query, params);
77
77
  }))[0];
78
78
  if (customResultMapper) return customResultMapper(rows);
79
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
79
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(rows) : rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
80
80
  }
81
81
  async executeRqbV2(placeholderValues = {}) {
82
82
  const params = (0, __sql_sql_ts.fillPlaceholders)(this.params, placeholderValues);
@@ -107,7 +107,7 @@ var MySql2PreparedQuery = class extends __mysql_core_session_ts.MySqlPreparedQue
107
107
  ]);
108
108
  if (row === void 0 || Array.isArray(row) && row.length === 0) break;
109
109
  else if (row instanceof Error) throw row;
110
- else if (this.isRqbV2Query) if (this.useJitMapper) yield (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))([row]);
110
+ else if (this.isRqbV2Query) if (this.useJitMappers) yield (this.jitMapper = this.jitMapper ?? (0, __relations_ts.makeJitRqbMapper)(this.rqbConfig))([row]);
111
111
  else {
112
112
  const mapped = customResultMapper([row]);
113
113
  if (this.rqbConfig.isFirst) yield mapped;
@@ -116,7 +116,7 @@ var MySql2PreparedQuery = class extends __mysql_core_session_ts.MySqlPreparedQue
116
116
  else if (hasRowsMapper) if (customResultMapper) {
117
117
  const mappedRow = customResultMapper([row]);
118
118
  yield Array.isArray(mappedRow) ? mappedRow[0] : mappedRow;
119
- } else yield this.useJitMapper ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))([row])[0] : (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap);
119
+ } else yield this.useJitMappers ? (this.jitMapper = this.jitMapper ?? (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))([row])[0] : (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap);
120
120
  else yield row;
121
121
  }
122
122
  } finally {
@@ -141,10 +141,10 @@ var MySql2Session = class MySql2Session extends __mysql_core_session_ts.MySqlSes
141
141
  this.mode = options.mode;
142
142
  }
143
143
  prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig) {
144
- return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds);
144
+ return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds);
145
145
  }
146
146
  prepareRelationalQuery(query, fields, customResultMapper, config, generatedIds, returningIds) {
147
- return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds, true, config);
147
+ return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds, true, config);
148
148
  }
149
149
  /**
150
150
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"session.cjs","names":["MySqlPreparedQuery","entityKind","Column","MySqlSession","NoopLogger","NoopCache","MySqlTransaction","sql"],"sources":["../../src/mysql2/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\ttype Mode,\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n\ttype MySqlTransactionConfig,\n\ttype PreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type MySql2Client = Pool | Connection;\n\nexport type MySqlRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type MySqlQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type MySqlQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends MySqlPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySql2PreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t: T['execute'])[]>\n\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t: T['execute'])[]>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMapper) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\t\t\t\t\t[row] as Record<string, unknown>[],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMapper\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface MySql2SessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n\tmode: Mode;\n}\n\nexport class MySql2Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, MySql2PreparedQueryHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySql2Session';\n\n\tprivate logger: Logger;\n\tprivate mode: Mode;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tdialect: MySqlDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: MySql2SessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t\tthis.mode = options.mode;\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<MySql2PreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<MySqlQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new MySql2Session(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t\tthis.mode,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class MySql2Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlTransaction<\n\tMySql2QueryResultHKT,\n\tMySql2PreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'MySql2Transaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tthis.mode,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: MySql2Client): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface MySql2QueryResultHKT extends MySqlQueryResultHKT {\n\ttype: MySqlRawQueryResult;\n}\n\nexport interface MySql2PreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: MySql2PreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.cjs","names":["MySqlPreparedQuery","entityKind","Column","MySqlSession","NoopLogger","NoopCache","MySqlTransaction","sql"],"sources":["../../src/mysql2/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\ttype Mode,\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n\ttype MySqlTransactionConfig,\n\ttype PreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type MySql2Client = Pool | Connection;\n\nexport type MySqlRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type MySqlQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type MySqlQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends MySqlPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySql2PreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t: T['execute'])[]>\n\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t: T['execute'])[]>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMappers) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\t\t\t\t\t[row] as Record<string, unknown>[],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMappers\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface MySql2SessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n\tmode: Mode;\n}\n\nexport class MySql2Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, MySql2PreparedQueryHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySql2Session';\n\n\tprivate logger: Logger;\n\tprivate mode: Mode;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tdialect: MySqlDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: MySql2SessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t\tthis.mode = options.mode;\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<MySql2PreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<MySqlQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new MySql2Session(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t\tthis.mode,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class MySql2Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlTransaction<\n\tMySql2QueryResultHKT,\n\tMySql2PreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'MySql2Transaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tthis.mode,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: MySql2Client): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface MySql2QueryResultHKT extends MySqlQueryResultHKT {\n\ttype: MySqlRawQueryResult;\n}\n\nexport interface MySql2PreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: MySql2PreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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"}
@@ -21,7 +21,7 @@ declare class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 e
21
21
  private params;
22
22
  private logger;
23
23
  private fields;
24
- private useJitMapper;
24
+ private useJitMappers;
25
25
  private customResultMapper?;
26
26
  private generatedIds?;
27
27
  private returningIds?;
@@ -34,7 +34,7 @@ declare class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 e
34
34
  constructor(client: MySql2Client, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
35
35
  type: 'select' | 'update' | 'delete' | 'insert';
36
36
  tables: string[];
37
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
37
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMappers: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
38
38
  execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
39
39
  private executeRqbV2;
40
40
  iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']>;
@@ -42,7 +42,7 @@ declare class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 e
42
42
  interface MySql2SessionOptions {
43
43
  logger?: Logger;
44
44
  cache?: Cache;
45
- useJitMapper?: boolean;
45
+ useJitMappers?: boolean;
46
46
  mode: Mode;
47
47
  }
48
48
  declare class MySql2Session<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends MySqlSession<MySqlQueryResultHKT, MySql2PreparedQueryHKT, TFullSchema, TRelations, TSchema> {
@@ -21,7 +21,7 @@ declare class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 e
21
21
  private params;
22
22
  private logger;
23
23
  private fields;
24
- private useJitMapper;
24
+ private useJitMappers;
25
25
  private customResultMapper?;
26
26
  private generatedIds?;
27
27
  private returningIds?;
@@ -34,7 +34,7 @@ declare class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 e
34
34
  constructor(client: MySql2Client, queryString: string, params: unknown[], logger: Logger, cache: Cache, queryMetadata: {
35
35
  type: 'select' | 'update' | 'delete' | 'insert';
36
36
  tables: string[];
37
- } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
37
+ } | undefined, cacheConfig: WithCacheConfig | undefined, fields: SelectedFieldsOrdered | undefined, useJitMappers: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => T["execute"]) | undefined, generatedIds?: Record<string, unknown>[] | undefined, returningIds?: SelectedFieldsOrdered | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
38
38
  execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;
39
39
  private executeRqbV2;
40
40
  iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']>;
@@ -42,7 +42,7 @@ declare class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 e
42
42
  interface MySql2SessionOptions {
43
43
  logger?: Logger;
44
44
  cache?: Cache;
45
- useJitMapper?: boolean;
45
+ useJitMappers?: boolean;
46
46
  mode: Mode;
47
47
  }
48
48
  declare class MySql2Session<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends MySqlSession<MySqlQueryResultHKT, MySql2PreparedQueryHKT, TFullSchema, TRelations, TSchema> {
package/mysql2/session.js CHANGED
@@ -14,13 +14,13 @@ var MySql2PreparedQuery = class extends MySqlPreparedQuery {
14
14
  rawQuery;
15
15
  query;
16
16
  jitMapper;
17
- constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMapper, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
17
+ constructor(client, queryString, params, logger, cache, queryMetadata, cacheConfig, fields, useJitMappers, customResultMapper, generatedIds, returningIds, isRqbV2Query, rqbConfig) {
18
18
  super(cache, queryMetadata, cacheConfig);
19
19
  this.client = client;
20
20
  this.params = params;
21
21
  this.logger = logger;
22
22
  this.fields = fields;
23
- this.useJitMapper = useJitMapper;
23
+ this.useJitMappers = useJitMappers;
24
24
  this.customResultMapper = customResultMapper;
25
25
  this.generatedIds = generatedIds;
26
26
  this.returningIds = returningIds;
@@ -74,7 +74,7 @@ var MySql2PreparedQuery = class extends MySqlPreparedQuery {
74
74
  return await client.query(query, params);
75
75
  }))[0];
76
76
  if (customResultMapper) return customResultMapper(rows);
77
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
77
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
78
78
  }
79
79
  async executeRqbV2(placeholderValues = {}) {
80
80
  const params = fillPlaceholders(this.params, placeholderValues);
@@ -105,7 +105,7 @@ var MySql2PreparedQuery = class extends MySqlPreparedQuery {
105
105
  ]);
106
106
  if (row === void 0 || Array.isArray(row) && row.length === 0) break;
107
107
  else if (row instanceof Error) throw row;
108
- else if (this.isRqbV2Query) if (this.useJitMapper) yield (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))([row]);
108
+ else if (this.isRqbV2Query) if (this.useJitMappers) yield (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))([row]);
109
109
  else {
110
110
  const mapped = customResultMapper([row]);
111
111
  if (this.rqbConfig.isFirst) yield mapped;
@@ -114,7 +114,7 @@ var MySql2PreparedQuery = class extends MySqlPreparedQuery {
114
114
  else if (hasRowsMapper) if (customResultMapper) {
115
115
  const mappedRow = customResultMapper([row]);
116
116
  yield Array.isArray(mappedRow) ? mappedRow[0] : mappedRow;
117
- } else yield this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))([row])[0] : mapResultRow(fields, row, joinsNotNullableMap);
117
+ } else yield this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))([row])[0] : mapResultRow(fields, row, joinsNotNullableMap);
118
118
  else yield row;
119
119
  }
120
120
  } finally {
@@ -139,10 +139,10 @@ var MySql2Session = class MySql2Session extends MySqlSession {
139
139
  this.mode = options.mode;
140
140
  }
141
141
  prepareQuery(query, fields, customResultMapper, generatedIds, returningIds, queryMetadata, cacheConfig) {
142
- return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds);
142
+ return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, queryMetadata, cacheConfig, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds);
143
143
  }
144
144
  prepareRelationalQuery(query, fields, customResultMapper, config, generatedIds, returningIds) {
145
- return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMapper, customResultMapper, generatedIds, returningIds, true, config);
145
+ return new MySql2PreparedQuery(this.client, query.sql, query.params, this.logger, this.cache, void 0, void 0, fields, this.options.useJitMappers, customResultMapper, generatedIds, returningIds, true, config);
146
146
  }
147
147
  /**
148
148
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","names":[],"sources":["../../src/mysql2/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\ttype Mode,\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n\ttype MySqlTransactionConfig,\n\ttype PreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type MySql2Client = Pool | Connection;\n\nexport type MySqlRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type MySqlQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type MySqlQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends MySqlPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySql2PreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t: T['execute'])[]>\n\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t: T['execute'])[]>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMapper) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\t\t\t\t\t[row] as Record<string, unknown>[],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMapper\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface MySql2SessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMapper?: boolean;\n\tmode: Mode;\n}\n\nexport class MySql2Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, MySql2PreparedQueryHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySql2Session';\n\n\tprivate logger: Logger;\n\tprivate mode: Mode;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tdialect: MySqlDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: MySql2SessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t\tthis.mode = options.mode;\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<MySql2PreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<MySqlQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new MySql2Session(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t\tthis.mode,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class MySql2Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlTransaction<\n\tMySql2QueryResultHKT,\n\tMySql2PreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'MySql2Transaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tthis.mode,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: MySql2Client): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface MySql2QueryResultHKT extends MySqlQueryResultHKT {\n\ttype: MySqlRawQueryResult;\n}\n\nexport interface MySql2PreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: MySql2PreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.js","names":[],"sources":["../../src/mysql2/session.ts"],"sourcesContent":["import type { Connection as CallbackConnection } from 'mysql2';\nimport type {\n\tConnection,\n\tFieldPacket,\n\tOkPacket,\n\tPool,\n\tPoolConnection,\n\tQueryOptions,\n\tResultSetHeader,\n\tRowDataPacket,\n} from 'mysql2/promise';\nimport { once } from 'node:events';\nimport type * as V1 from '~/_relations.ts';\nimport { type Cache, NoopCache } from '~/cache/core/index.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/mysql-core/query-builders/select.types.ts';\nimport {\n\ttype Mode,\n\tMySqlPreparedQuery,\n\ttype MySqlPreparedQueryConfig,\n\ttype MySqlPreparedQueryHKT,\n\ttype MySqlQueryResultHKT,\n\tMySqlSession,\n\tMySqlTransaction,\n\ttype MySqlTransactionConfig,\n\ttype PreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, sql } from '~/sql/sql.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport type MySql2Client = Pool | Connection;\n\nexport type MySqlRawQueryResult = [ResultSetHeader, FieldPacket[]];\nexport type MySqlQueryResultType = RowDataPacket[][] | RowDataPacket[] | OkPacket | OkPacket[] | ResultSetHeader;\nexport type MySqlQueryResult<\n\tT = any,\n> = [T extends ResultSetHeader ? T : T[], FieldPacket[]];\n\nexport class MySql2PreparedQuery<T extends MySqlPreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends MySqlPreparedQuery<T>\n{\n\tstatic override readonly [entityKind]: string = 'MySql2PreparedQuery';\n\n\tprivate rawQuery: QueryOptions;\n\tprivate query: QueryOptions;\n\tprivate jitMapper?:\n\t\t| RowsMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>\n\t\t| RelationalRowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tprivate useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\t// Keys that were used in $default and the value that was generated for them\n\t\tprivate generatedIds?: Record<string, unknown>[],\n\t\t// Keys that should be returned, it has the column with all properries + key from object\n\t\tprivate returningIds?: SelectedFieldsOrdered,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper(cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = {\n\t\t\tsql: queryString,\n\t\t\t// rowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t\tthis.query = {\n\t\t\tsql: queryString,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { fields, client, rawQuery, query, joinsNotNullableMap, customResultMapper, returningIds, generatedIds } =\n\t\t\tthis;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst res = await this.queryWithCache(rawQuery.sql, params, async () => {\n\t\t\t\treturn await client.query<any>(rawQuery, params);\n\t\t\t});\n\n\t\t\tconst insertId = res[0].insertId;\n\t\t\tconst affectedRows = res[0].affectedRows;\n\t\t\t// for each row, I need to check keys from\n\t\t\tif (returningIds) {\n\t\t\t\tconst returningResponse = [];\n\t\t\t\tlet j = 0;\n\t\t\t\tfor (let i = insertId; i < insertId + affectedRows; i++) {\n\t\t\t\t\tfor (const column of returningIds) {\n\t\t\t\t\t\tconst key = returningIds[0]!.path[0]!;\n\t\t\t\t\t\tif (is(column.field, Column)) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (column.field.primary && column.field.autoIncrement) {\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: i });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (column.field.defaultFn && generatedIds) {\n\t\t\t\t\t\t\t\t// generatedIds[rowIdx][key]\n\t\t\t\t\t\t\t\treturningResponse.push({ [key]: generatedIds[j]![key] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\n\t\t\t\treturn returningResponse;\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\n\t\tconst result = await this.queryWithCache(query.sql, params, async () => {\n\t\t\treturn await client.query<any[]>(query, params);\n\t\t});\n\n\t\tconst rows = result[0];\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows);\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t: T['execute'])[]>\n\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t: T['execute'])[]>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> = {}): Promise<T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\tthis.logger.logQuery(this.rawQuery.sql, params);\n\n\t\tconst { client, rawQuery, customResultMapper } = this;\n\t\tconst res = await client.query<any>(rawQuery, params);\n\n\t\tconst rows = res[0];\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(rows);\n\t}\n\n\tasync *iterator(\n\t\tplaceholderValues: Record<string, unknown> = {},\n\t): AsyncGenerator<T['execute'] extends any[] ? T['execute'][number] : T['execute']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\tconst conn = ((isPool(this.client) ? await this.client.getConnection() : this.client) as {} as {\n\t\t\tconnection: CallbackConnection;\n\t\t}).connection;\n\n\t\tconst { fields, query, rawQuery, joinsNotNullableMap, client, customResultMapper } = this;\n\t\tconst hasRowsMapper = Boolean(fields || customResultMapper);\n\t\tconst driverQuery = hasRowsMapper ? conn.query(query, params) : conn.query(rawQuery, params);\n\n\t\tconst stream = driverQuery.stream();\n\n\t\tfunction dataListener() {\n\t\t\tstream.pause();\n\t\t}\n\n\t\tstream.on('data', dataListener);\n\n\t\ttry {\n\t\t\tconst onEnd = once(stream, 'end');\n\t\t\tconst onError = once(stream, 'error');\n\n\t\t\twhile (true) {\n\t\t\t\tstream.resume();\n\t\t\t\tconst row = await Promise.race([onEnd, onError, new Promise((resolve) => stream.once('data', resolve))]);\n\t\t\t\tif (row === undefined || (Array.isArray(row) && row.length === 0)) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (row instanceof Error) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t\tthrow row;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.isRqbV2Query) {\n\t\t\t\t\t\tif (this.useJitMappers) {\n\t\t\t\t\t\t\tyield (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['execute']>\n\t\t\t\t\t\t\t\t?? makeJitRqbMapper<T['execute']>(this.rqbConfig!))([row as Record<string, unknown>]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst mapped = (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\t\t\t\t\t[row] as Record<string, unknown>[],\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (this.rqbConfig!.isFirst) yield mapped;\n\t\t\t\t\t\t\telse yield ((<any[]> mapped)[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (hasRowsMapper) {\n\t\t\t\t\t\tif (customResultMapper) {\n\t\t\t\t\t\t\tconst mappedRow = (customResultMapper as (rows: unknown[][]) => T['execute'])([row as unknown[]]);\n\t\t\t\t\t\t\tyield (Array.isArray(mappedRow) ? mappedRow[0] : mappedRow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tyield this.useJitMappers\n\t\t\t\t\t\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<(T['execute'] extends any[] ? T['execute'][number]\n\t\t\t\t\t\t\t\t\t: T['execute'])[]>\n\t\t\t\t\t\t\t\t\t?? makeJitQueryMapper<(T['execute'] extends any[] ? T['execute'][number] : T['execute'])[]>(\n\t\t\t\t\t\t\t\t\t\tfields!,\n\t\t\t\t\t\t\t\t\t\tjoinsNotNullableMap,\n\t\t\t\t\t\t\t\t\t))([row as unknown[]])[0] as T['execute']\n\t\t\t\t\t\t\t\t: mapResultRow(fields!, row as unknown[], joinsNotNullableMap);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield row as T['execute'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tstream.off('data', dataListener);\n\t\t\tif (isPool(client)) {\n\t\t\t\tconn.end();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface MySql2SessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n\tmode: Mode;\n}\n\nexport class MySql2Session<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlSession<MySqlQueryResultHKT, MySql2PreparedQueryHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySql2Session';\n\n\tprivate logger: Logger;\n\tprivate mode: Mode;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tdialect: MySqlDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: MySql2SessionOptions,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t\tthis.mode = options.mode;\n\t}\n\n\tprepareQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t\tqueryMetadata?: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t},\n\t\tcacheConfig?: WithCacheConfig,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t) as PreparedQueryKind<MySql2PreparedQueryHKT, T>;\n\t}\n\n\tprepareRelationalQuery<T extends MySqlPreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\tconfig: RelationalQueryMapperConfig,\n\t\tgeneratedIds?: Record<string, unknown>[],\n\t\treturningIds?: SelectedFieldsOrdered,\n\t): PreparedQueryKind<MySql2PreparedQueryHKT, T> {\n\t\t// Add returningId fields\n\t\t// Each driver gets them from response from database\n\t\treturn new MySql2PreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\tgeneratedIds,\n\t\t\treturningIds,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t) as any;\n\t}\n\n\t/**\n\t * @internal\n\t * What is its purpose?\n\t */\n\tasync query(query: string, params: unknown[]): Promise<MySqlQueryResult> {\n\t\tthis.logger.logQuery(query, params);\n\t\tconst result = await this.client.query({\n\t\t\tsql: query,\n\t\t\tvalues: params,\n\t\t\trowsAsArray: true,\n\t\t\ttypeCast: function(field: any, next: any) {\n\t\t\t\tif (field.type === 'TIMESTAMP' || field.type === 'DATETIME' || field.type === 'DATE') {\n\t\t\t\t\treturn field.string();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t},\n\t\t});\n\t\treturn result;\n\t}\n\n\toverride all<T = unknown>(query: SQL): Promise<T[]> {\n\t\tconst querySql = this.dialect.sqlToQuery(query);\n\t\tthis.logger.logQuery(querySql.sql, querySql.params);\n\t\treturn this.client.query(querySql.sql, querySql.params).then((result) => result[0]) as Promise<T[]>;\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: MySqlTransactionConfig,\n\t): Promise<T> {\n\t\tconst session = isPool(this.client)\n\t\t\t? new MySql2Session(\n\t\t\t\tawait this.client.getConnection(),\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.relations,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: this;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession as MySqlSession<any, any, any, any, any>,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\t0,\n\t\t\tthis.mode,\n\t\t);\n\t\tif (config) {\n\t\t\tconst setTransactionConfigSql = this.getSetTransactionSQL(config);\n\t\t\tif (setTransactionConfigSql) {\n\t\t\t\tawait tx.execute(setTransactionConfigSql);\n\t\t\t}\n\t\t\tconst startTransactionSql = this.getStartTransactionSQL(config);\n\t\t\tawait (startTransactionSql ? tx.execute(startTransactionSql) : tx.execute(sql`begin`));\n\t\t} else {\n\t\t\tawait tx.execute(sql`begin`);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow err;\n\t\t} finally {\n\t\t\tif (isPool(this.client)) {\n\t\t\t\t(session.client as PoolConnection).release();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport class MySql2Transaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends MySqlTransaction<\n\tMySql2QueryResultHKT,\n\tMySql2PreparedQueryHKT,\n\tTFullSchema,\n\tTRelations,\n\tTSchema\n> {\n\tstatic override readonly [entityKind]: string = 'MySql2Transaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: MySql2Transaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new MySql2Transaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t\tthis.mode,\n\t\t);\n\t\tawait tx.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait tx.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait tx.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nfunction isPool(client: MySql2Client): client is Pool {\n\treturn 'getConnection' in client;\n}\n\nexport interface MySql2QueryResultHKT extends MySqlQueryResultHKT {\n\ttype: MySqlRawQueryResult;\n}\n\nexport interface MySql2PreparedQueryHKT extends MySqlPreparedQueryHKT {\n\ttype: MySql2PreparedQuery<Assume<this['config'], MySqlPreparedQueryConfig>>;\n}\n"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
+ let __pg_core_array_ts = require("../pg-core/array.cjs");
4
+ let __pg_core_codecs_ts = require("../pg-core/codecs.cjs");
5
+
6
+ //#region src/neon-http/codecs.ts
7
+ const neonHttpCodecs = (0, __pg_core_codecs_ts.refineGenericPgCodecs)({
8
+ bigint: {
9
+ normalize: BigInt,
10
+ normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(BigInt)
11
+ },
12
+ bigserial: {
13
+ normalize: BigInt,
14
+ normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(BigInt)
15
+ },
16
+ bit: { normalizeArray: __pg_core_array_ts.parsePgArray },
17
+ bytea: { normalizeParam: String },
18
+ date: {
19
+ castArray: __pg_core_codecs_ts.castToTextArr,
20
+ normalize: __pg_core_codecs_ts.textToDate,
21
+ normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDate)
22
+ },
23
+ "date:string": { castArray: __pg_core_codecs_ts.castToTextArr },
24
+ timestamp: {
25
+ castArray: __pg_core_codecs_ts.castToTextArr,
26
+ normalize: __pg_core_codecs_ts.textToDateWithTz,
27
+ normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDateWithTz)
28
+ },
29
+ timestamptz: {
30
+ castArray: __pg_core_codecs_ts.castToTextArr,
31
+ normalize: __pg_core_codecs_ts.textToDate,
32
+ normalizeArray: (0, __pg_core_codecs_ts.arrayCompatNormalize)(__pg_core_codecs_ts.textToDate)
33
+ },
34
+ "timestamp:string": { castArray: __pg_core_codecs_ts.castToTextArr },
35
+ "timestamptz:string": { castArray: __pg_core_codecs_ts.castToTextArr },
36
+ geometry: { normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryXY) },
37
+ "geometry:tuple": { normalizeArray: (0, __pg_core_codecs_ts.parsePgArrayAndNormalize)(__pg_core_codecs_ts.parseGeometryTuple) },
38
+ interval: { castArray: __pg_core_codecs_ts.castToTextArr },
39
+ json: { normalizeParam: (v) => JSON.stringify(v) },
40
+ jsonb: { normalizeParam: (v) => JSON.stringify(v) },
41
+ line: {
42
+ cast: __pg_core_codecs_ts.castToText,
43
+ castArray: __pg_core_codecs_ts.castToTextArr
44
+ },
45
+ "line:tuple": {
46
+ cast: __pg_core_codecs_ts.castToText,
47
+ castArray: __pg_core_codecs_ts.castToTextArr
48
+ },
49
+ macaddr8: {
50
+ castArrayInJson: __pg_core_codecs_ts.castToTextArr,
51
+ castArray: __pg_core_codecs_ts.castToTextArr
52
+ },
53
+ point: {
54
+ cast: __pg_core_codecs_ts.castToText,
55
+ castArray: __pg_core_codecs_ts.castToTextArr
56
+ },
57
+ "point:tuple": {
58
+ cast: __pg_core_codecs_ts.castToText,
59
+ castArray: __pg_core_codecs_ts.castToTextArr
60
+ },
61
+ sparsevec: { normalizeArray: __pg_core_array_ts.parsePgArray }
62
+ });
63
+
64
+ //#endregion
65
+ exports.neonHttpCodecs = neonHttpCodecs;
66
+ //# sourceMappingURL=codecs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codecs.cjs","names":["parsePgArray","castToTextArr","textToDate","textToDateWithTz","parseGeometryXY","parseGeometryTuple","castToText"],"sources":["../../src/neon-http/codecs.ts"],"sourcesContent":["import { parsePgArray } from '~/pg-core/array.ts';\nimport {\n\tarrayCompatNormalize,\n\tcastToText,\n\tcastToTextArr,\n\tparseGeometryTuple,\n\tparseGeometryXY,\n\tparsePgArrayAndNormalize,\n\trefineGenericPgCodecs,\n\ttextToDate,\n\ttextToDateWithTz,\n} from '~/pg-core/codecs.ts';\n\nexport const neonHttpCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbit: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n\tbytea: {\n\t\tnormalizeParam: String,\n\t},\n\tdate: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'date:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\ttimestamp: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz),\n\t},\n\ttimestamptz: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'timestamp:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\t'timestamptz:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\tgeometry: {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryXY),\n\t},\n\t'geometry:tuple': {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),\n\t},\n\tinterval: {\n\t\tcastArray: castToTextArr,\n\t},\n\tjson: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tjsonb: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'line:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'point:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n});\n"],"mappings":";;;;;;AAaA,MAAa,gEAAuC;CACnD,QAAQ;EACP,WAAW;EACX,8DAAqC,OAAO;EAC5C;CACD,WAAW;EACV,WAAW;EACX,8DAAqC,OAAO;EAC5C;CACD,KAAK,EACJ,gBAAgBA,iCAChB;CACD,OAAO,EACN,gBAAgB,QAChB;CACD,MAAM;EACL,WAAWC;EACX,WAAWC;EACX,8DAAqCA,+BAAW;EAChD;CACD,eAAe,EACd,WAAWD,mCACX;CACD,WAAW;EACV,WAAWA;EACX,WAAWE;EACX,8DAAqCA,qCAAiB;EACtD;CACD,aAAa;EACZ,WAAWF;EACX,WAAWC;EACX,8DAAqCA,+BAAW;EAChD;CACD,oBAAoB,EACnB,WAAWD,mCACX;CACD,sBAAsB,EACrB,WAAWA,mCACX;CACD,UAAU,EACT,kEAAyCG,oCAAgB,EACzD;CACD,kBAAkB,EACjB,kEAAyCC,uCAAmB,EAC5D;CACD,UAAU,EACT,WAAWJ,mCACX;CACD,MAAM,EACL,iBAAiB,MAAM,KAAK,UAAU,EAAE,EACxC;CACD,OAAO,EACN,iBAAiB,MAAM,KAAK,UAAU,EAAE,EACxC;CACD,MAAM;EACL,MAAMK;EACN,WAAWL;EACX;CACD,cAAc;EACb,MAAMK;EACN,WAAWL;EACX;CACD,UAAU;EACT,iBAAiBA;EACjB,WAAWA;EACX;CACD,OAAO;EACN,MAAMK;EACN,WAAWL;EACX;CACD,eAAe;EACd,MAAMK;EACN,WAAWL;EACX;CACD,WAAW,EACV,gBAAgBD,iCAChB;CACD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { PartialWithUndefined } from "../utils.cjs";
2
+ import { Codec } from "../codecs.cjs";
3
+ import * as __pg_core_codecs_ts0 from "../pg-core/codecs.cjs";
4
+
5
+ //#region src/neon-http/codecs.d.ts
6
+ declare const neonHttpCodecs: PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
7
+ //#endregion
8
+ export { neonHttpCodecs };
9
+ //# sourceMappingURL=codecs.d.cts.map
@@ -0,0 +1,9 @@
1
+ import { PartialWithUndefined } from "../utils.js";
2
+ import { Codec } from "../codecs.js";
3
+ import * as __pg_core_codecs_ts0 from "../pg-core/codecs.js";
4
+
5
+ //#region src/neon-http/codecs.d.ts
6
+ declare const neonHttpCodecs: PartialWithUndefined<Record<__pg_core_codecs_ts0.PostgresType, Codec>>;
7
+ //#endregion
8
+ export { neonHttpCodecs };
9
+ //# sourceMappingURL=codecs.d.ts.map
@@ -0,0 +1,64 @@
1
+ import { parsePgArray } from "../pg-core/array.js";
2
+ import { arrayCompatNormalize, castToText, castToTextArr, parseGeometryTuple, parseGeometryXY, parsePgArrayAndNormalize, refineGenericPgCodecs, textToDate, textToDateWithTz } from "../pg-core/codecs.js";
3
+
4
+ //#region src/neon-http/codecs.ts
5
+ const neonHttpCodecs = refineGenericPgCodecs({
6
+ bigint: {
7
+ normalize: BigInt,
8
+ normalizeArray: arrayCompatNormalize(BigInt)
9
+ },
10
+ bigserial: {
11
+ normalize: BigInt,
12
+ normalizeArray: arrayCompatNormalize(BigInt)
13
+ },
14
+ bit: { normalizeArray: parsePgArray },
15
+ bytea: { normalizeParam: String },
16
+ date: {
17
+ castArray: castToTextArr,
18
+ normalize: textToDate,
19
+ normalizeArray: arrayCompatNormalize(textToDate)
20
+ },
21
+ "date:string": { castArray: castToTextArr },
22
+ timestamp: {
23
+ castArray: castToTextArr,
24
+ normalize: textToDateWithTz,
25
+ normalizeArray: arrayCompatNormalize(textToDateWithTz)
26
+ },
27
+ timestamptz: {
28
+ castArray: castToTextArr,
29
+ normalize: textToDate,
30
+ normalizeArray: arrayCompatNormalize(textToDate)
31
+ },
32
+ "timestamp:string": { castArray: castToTextArr },
33
+ "timestamptz:string": { castArray: castToTextArr },
34
+ geometry: { normalizeArray: parsePgArrayAndNormalize(parseGeometryXY) },
35
+ "geometry:tuple": { normalizeArray: parsePgArrayAndNormalize(parseGeometryTuple) },
36
+ interval: { castArray: castToTextArr },
37
+ json: { normalizeParam: (v) => JSON.stringify(v) },
38
+ jsonb: { normalizeParam: (v) => JSON.stringify(v) },
39
+ line: {
40
+ cast: castToText,
41
+ castArray: castToTextArr
42
+ },
43
+ "line:tuple": {
44
+ cast: castToText,
45
+ castArray: castToTextArr
46
+ },
47
+ macaddr8: {
48
+ castArrayInJson: castToTextArr,
49
+ castArray: castToTextArr
50
+ },
51
+ point: {
52
+ cast: castToText,
53
+ castArray: castToTextArr
54
+ },
55
+ "point:tuple": {
56
+ cast: castToText,
57
+ castArray: castToTextArr
58
+ },
59
+ sparsevec: { normalizeArray: parsePgArray }
60
+ });
61
+
62
+ //#endregion
63
+ export { neonHttpCodecs };
64
+ //# sourceMappingURL=codecs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codecs.js","names":[],"sources":["../../src/neon-http/codecs.ts"],"sourcesContent":["import { parsePgArray } from '~/pg-core/array.ts';\nimport {\n\tarrayCompatNormalize,\n\tcastToText,\n\tcastToTextArr,\n\tparseGeometryTuple,\n\tparseGeometryXY,\n\tparsePgArrayAndNormalize,\n\trefineGenericPgCodecs,\n\ttextToDate,\n\ttextToDateWithTz,\n} from '~/pg-core/codecs.ts';\n\nexport const neonHttpCodecs = refineGenericPgCodecs({\n\tbigint: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbigserial: {\n\t\tnormalize: BigInt,\n\t\tnormalizeArray: arrayCompatNormalize(BigInt),\n\t},\n\tbit: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n\tbytea: {\n\t\tnormalizeParam: String,\n\t},\n\tdate: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'date:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\ttimestamp: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDateWithTz,\n\t\tnormalizeArray: arrayCompatNormalize(textToDateWithTz),\n\t},\n\ttimestamptz: {\n\t\tcastArray: castToTextArr,\n\t\tnormalize: textToDate,\n\t\tnormalizeArray: arrayCompatNormalize(textToDate),\n\t},\n\t'timestamp:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\t'timestamptz:string': {\n\t\tcastArray: castToTextArr,\n\t},\n\tgeometry: {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryXY),\n\t},\n\t'geometry:tuple': {\n\t\tnormalizeArray: parsePgArrayAndNormalize(parseGeometryTuple),\n\t},\n\tinterval: {\n\t\tcastArray: castToTextArr,\n\t},\n\tjson: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tjsonb: {\n\t\tnormalizeParam: (v) => JSON.stringify(v),\n\t},\n\tline: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'line:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tmacaddr8: {\n\t\tcastArrayInJson: castToTextArr,\n\t\tcastArray: castToTextArr,\n\t},\n\tpoint: {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\t'point:tuple': {\n\t\tcast: castToText,\n\t\tcastArray: castToTextArr,\n\t},\n\tsparsevec: {\n\t\tnormalizeArray: parsePgArray,\n\t},\n});\n"],"mappings":";;;;AAaA,MAAa,iBAAiB,sBAAsB;CACnD,QAAQ;EACP,WAAW;EACX,gBAAgB,qBAAqB,OAAO;EAC5C;CACD,WAAW;EACV,WAAW;EACX,gBAAgB,qBAAqB,OAAO;EAC5C;CACD,KAAK,EACJ,gBAAgB,cAChB;CACD,OAAO,EACN,gBAAgB,QAChB;CACD,MAAM;EACL,WAAW;EACX,WAAW;EACX,gBAAgB,qBAAqB,WAAW;EAChD;CACD,eAAe,EACd,WAAW,eACX;CACD,WAAW;EACV,WAAW;EACX,WAAW;EACX,gBAAgB,qBAAqB,iBAAiB;EACtD;CACD,aAAa;EACZ,WAAW;EACX,WAAW;EACX,gBAAgB,qBAAqB,WAAW;EAChD;CACD,oBAAoB,EACnB,WAAW,eACX;CACD,sBAAsB,EACrB,WAAW,eACX;CACD,UAAU,EACT,gBAAgB,yBAAyB,gBAAgB,EACzD;CACD,kBAAkB,EACjB,gBAAgB,yBAAyB,mBAAmB,EAC5D;CACD,UAAU,EACT,WAAW,eACX;CACD,MAAM,EACL,iBAAiB,MAAM,KAAK,UAAU,EAAE,EACxC;CACD,OAAO,EACN,iBAAiB,MAAM,KAAK,UAAU,EAAE,EACxC;CACD,MAAM;EACL,MAAM;EACN,WAAW;EACX;CACD,cAAc;EACb,MAAM;EACN,WAAW;EACX;CACD,UAAU;EACT,iBAAiB;EACjB,WAAW;EACX;CACD,OAAO;EACN,MAAM;EACN,WAAW;EACX;CACD,eAAe;EACd,MAAM;EACN,WAAW;EACX;CACD,WAAW,EACV,gBAAgB,cAChB;CACD,CAAC"}