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
@@ -14,7 +14,7 @@ import { Database, Statement } from "bun:sqlite";
14
14
  //#region src/bun-sqlite/session.d.ts
15
15
  interface SQLiteBunSessionOptions {
16
16
  logger?: Logger;
17
- useJitMapper?: boolean;
17
+ useJitMappers?: boolean;
18
18
  }
19
19
  type PreparedQueryConfig$1 = Omit<PreparedQueryConfig, 'statement' | 'run'>;
20
20
  type Statement$1 = Statement<any>;
@@ -46,13 +46,13 @@ declare class PreparedQuery<T extends PreparedQueryConfig$1 = PreparedQueryConfi
46
46
  private stmt;
47
47
  private logger;
48
48
  private fields;
49
- private useJitMapper;
49
+ private useJitMappers;
50
50
  private customResultMapper?;
51
51
  private isRqbV2Query?;
52
52
  private rqbConfig?;
53
53
  static readonly [entityKind]: string;
54
54
  private jitMapper?;
55
- constructor(stmt: Statement$1, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
55
+ constructor(stmt: Statement$1, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, useJitMappers: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
56
56
  run(placeholderValues?: Record<string, unknown>): bun_sqlite0.Changes;
57
57
  all(placeholderValues?: Record<string, unknown>): T['all'];
58
58
  get(placeholderValues?: Record<string, unknown>): T['get'];
@@ -14,7 +14,7 @@ import { SelectedFieldsOrdered } from "../sqlite-core/query-builders/select.type
14
14
  //#region src/bun-sqlite/session.d.ts
15
15
  interface SQLiteBunSessionOptions {
16
16
  logger?: Logger;
17
- useJitMapper?: boolean;
17
+ useJitMappers?: boolean;
18
18
  }
19
19
  type PreparedQueryConfig$1 = Omit<PreparedQueryConfig, 'statement' | 'run'>;
20
20
  type Statement$1 = Statement<any>;
@@ -46,13 +46,13 @@ declare class PreparedQuery<T extends PreparedQueryConfig$1 = PreparedQueryConfi
46
46
  private stmt;
47
47
  private logger;
48
48
  private fields;
49
- private useJitMapper;
49
+ private useJitMappers;
50
50
  private customResultMapper?;
51
51
  private isRqbV2Query?;
52
52
  private rqbConfig?;
53
53
  static readonly [entityKind]: string;
54
54
  private jitMapper?;
55
- constructor(stmt: Statement$1, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, useJitMapper: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
55
+ constructor(stmt: Statement$1, query: Query, logger: Logger, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, useJitMappers: boolean | undefined, customResultMapper?: ((rows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][]) => unknown) | undefined, isRqbV2Query?: TIsRqbV2 | undefined, rqbConfig?: RelationalQueryMapperConfig | undefined);
56
56
  run(placeholderValues?: Record<string, unknown>): bun_sqlite0.Changes;
57
57
  all(placeholderValues?: Record<string, unknown>): T['all'];
58
58
  get(placeholderValues?: Record<string, unknown>): T['get'];
@@ -22,10 +22,10 @@ var SQLiteBunSession = class extends SQLiteSession {
22
22
  this.client.exec(query);
23
23
  }
24
24
  prepareQuery(query, fields, executeMethod, customResultMapper) {
25
- return new PreparedQuery(this.client.prepare(query.sql), query, this.logger, fields, executeMethod, this.options.useJitMapper, customResultMapper);
25
+ return new PreparedQuery(this.client.prepare(query.sql), query, this.logger, fields, executeMethod, this.options.useJitMappers, customResultMapper);
26
26
  }
27
27
  prepareRelationalQuery(query, fields, executeMethod, customResultMapper, config) {
28
- return new PreparedQuery(this.client.prepare(query.sql), query, this.logger, fields, executeMethod, this.options.useJitMapper, customResultMapper, true, config);
28
+ return new PreparedQuery(this.client.prepare(query.sql), query, this.logger, fields, executeMethod, this.options.useJitMappers, customResultMapper, true, config);
29
29
  }
30
30
  transaction(transaction, config = {}) {
31
31
  const tx = new SQLiteBunTransaction("sync", this.dialect, this, this.relations, this.schema);
@@ -55,12 +55,12 @@ var SQLiteBunTransaction = class SQLiteBunTransaction extends SQLiteTransaction
55
55
  var PreparedQuery = class extends SQLitePreparedQuery {
56
56
  static [entityKind] = "SQLiteBunPreparedQuery";
57
57
  jitMapper;
58
- constructor(stmt, query, logger, fields, executeMethod, useJitMapper, customResultMapper, isRqbV2Query, rqbConfig) {
58
+ constructor(stmt, query, logger, fields, executeMethod, useJitMappers, customResultMapper, isRqbV2Query, rqbConfig) {
59
59
  super("sync", executeMethod, query);
60
60
  this.stmt = stmt;
61
61
  this.logger = logger;
62
62
  this.fields = fields;
63
- this.useJitMapper = useJitMapper;
63
+ this.useJitMappers = useJitMappers;
64
64
  this.customResultMapper = customResultMapper;
65
65
  this.isRqbV2Query = isRqbV2Query;
66
66
  this.rqbConfig = rqbConfig;
@@ -80,7 +80,7 @@ var PreparedQuery = class extends SQLitePreparedQuery {
80
80
  }
81
81
  const rows = this.values(placeholderValues);
82
82
  if (customResultMapper) return customResultMapper(rows);
83
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
83
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))(rows) : rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
84
84
  }
85
85
  get(placeholderValues) {
86
86
  if (this.isRqbV2Query) return this.getRqbV2(placeholderValues);
@@ -95,14 +95,14 @@ var PreparedQuery = class extends SQLitePreparedQuery {
95
95
  const row = this.stmt.values(...params)[0];
96
96
  if (!row) return;
97
97
  if (customResultMapper) return customResultMapper([row]);
98
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))([row])[0] : mapResultRow(fields, row, joinsNotNullableMap);
98
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitQueryMapper(fields, joinsNotNullableMap))([row])[0] : mapResultRow(fields, row, joinsNotNullableMap);
99
99
  }
100
100
  allRqbV2(placeholderValues) {
101
101
  const { query, logger, stmt, customResultMapper } = this;
102
102
  const params = fillPlaceholders(query.params, placeholderValues ?? {});
103
103
  logger.logQuery(query.sql, params);
104
104
  const rows = stmt.all(...params);
105
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))(rows) : customResultMapper(rows);
105
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))(rows) : customResultMapper(rows);
106
106
  }
107
107
  getRqbV2(placeholderValues) {
108
108
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
@@ -110,7 +110,7 @@ var PreparedQuery = class extends SQLitePreparedQuery {
110
110
  const { stmt, customResultMapper } = this;
111
111
  const row = stmt.get(...params);
112
112
  if (!row) return void 0;
113
- return this.useJitMapper ? (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))([row]) : customResultMapper([row]);
113
+ return this.useJitMappers ? (this.jitMapper = this.jitMapper ?? makeJitRqbMapper(this.rqbConfig))([row]) : customResultMapper([row]);
114
114
  }
115
115
  values(placeholderValues) {
116
116
  const params = fillPlaceholders(this.query.params, placeholderValues ?? {});
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","names":["PreparedQueryBase"],"sources":["../../src/bun-sqlite/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { Database, Statement as BunStatement } from 'bun:sqlite';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { type DrizzleTypeError, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n\tuseJitMapper?: boolean;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\ntype Statement = BunStatement<any>;\n\nexport class SQLiteBunSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t\tconfig: RelationalQueryMapperConfig,\n\t): PreparedQuery<T, true> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TFullSchema, TRelations, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteBunTransaction<TFullSchema, TRelations, TSchema>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction(\n\t\t\t'sync',\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);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PreparedQueryBase<\n\t\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBunPreparedQuery';\n\tprivate jitMapper?: RowsMapper<any> | RelationalRowsMapper<any>;\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>) {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.run(...params);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, query, logger, joinsNotNullableMap, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.all(...params);\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['all']>\n\t\t\t\t?? makeJitQueryMapper<T['all']>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst row = this.stmt.get(...params);\n\t\t\tif (!row) return undefined;\n\n\t\t\treturn row;\n\t\t}\n\n\t\tconst row = this.stmt.values(...params)[0];\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)([row]) as T['get'];\n\t\t}\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['get'][]>\n\t\t\t\t?? makeJitQueryMapper<T['get'][]>(fields!, joinsNotNullableMap))(\n\t\t\t\t\t[row],\n\t\t\t\t)[0]\n\t\t\t: mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = stmt.all(...params) as Record<string, unknown>[];\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['all']>\n\t\t\t\t?? makeJitRqbMapper<T['all']>(this.rqbConfig!))(rows)\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { stmt, customResultMapper } = this;\n\n\t\tconst row = stmt.get(...params) as Record<string, unknown>;\n\t\tif (!row) return undefined;\n\n\t\treturn this.useJitMapper\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['get'][]>\n\t\t\t\t?? makeJitRqbMapper<T['get'][]>(this.rqbConfig!))([row])\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(\n\t\t\t\t[row],\n\t\t\t);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.values(...params);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.js","names":["PreparedQueryBase"],"sources":["../../src/bun-sqlite/session.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport type { Database, Statement as BunStatement } from 'bun:sqlite';\nimport type * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport {\n\ttype AnyRelations,\n\tmakeJitRqbMapper,\n\ttype RelationalQueryMapperConfig,\n\ttype RelationalRowsMapper,\n} from '~/relations.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery as PreparedQueryBase, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { type DrizzleTypeError, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nexport interface SQLiteBunSessionOptions {\n\tlogger?: Logger;\n\tuseJitMappers?: boolean;\n}\n\ntype PreparedQueryConfig = Omit<PreparedQueryConfigBase, 'statement' | 'run'>;\ntype Statement = BunStatement<any>;\n\nexport class SQLiteBunSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteSession<'sync', void, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: Database,\n\t\tdialect: SQLiteSyncDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: SQLiteBunSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\texec(query: string): void {\n\t\tthis.client.exec(query);\n\t}\n\n\tprepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): PreparedQuery<T> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends Omit<PreparedQueryConfig, 'run'>>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => unknown,\n\t\tconfig: RelationalQueryMapperConfig,\n\t): PreparedQuery<T, true> {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new PreparedQuery(\n\t\t\tstmt,\n\t\t\tquery,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\texecuteMethod,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t\tconfig,\n\t\t);\n\t}\n\n\toverride transaction<T>(\n\t\ttransaction: (tx: SQLiteBunTransaction<TFullSchema, TRelations, TSchema>) => T,\n\t\tconfig: SQLiteTransactionConfig = {},\n\t): T {\n\t\tconst tx = new SQLiteBunTransaction('sync', this.dialect, this, this.relations, this.schema);\n\t\tlet result: T | undefined;\n\t\tconst nativeTx = this.client.transaction(() => {\n\t\t\tresult = transaction(tx);\n\t\t});\n\t\tnativeTx[config.behavior ?? 'deferred']();\n\t\treturn result!;\n\t}\n}\n\nexport class SQLiteBunTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends SQLiteTransaction<'sync', void, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBunTransaction';\n\n\toverride transaction<T>(\n\t\ttransaction: (\n\t\t\ttx: SQLiteBunTransaction<TFullSchema, TRelations, TSchema>,\n\t\t) => T extends Promise<any> ? DrizzleTypeError<\"Sync drivers can't use async functions in transactions!\">\n\t\t\t: T,\n\t): T {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new SQLiteBunTransaction(\n\t\t\t'sync',\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);\n\t\tthis.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = transaction(tx);\n\t\t\tthis.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result as T;\n\t\t} catch (err) {\n\t\t\tthis.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig, TIsRqbV2 extends boolean = false>\n\textends PreparedQueryBase<\n\t\t{ type: 'sync'; run: void; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n\t>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteBunPreparedQuery';\n\tprivate jitMapper?: RowsMapper<any> | RelationalRowsMapper<any>;\n\n\tconstructor(\n\t\tprivate stmt: Statement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tprivate useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => unknown,\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t\tprivate rqbConfig?: RelationalQueryMapperConfig,\n\t) {\n\t\tsuper('sync', executeMethod, query);\n\t}\n\n\trun(placeholderValues?: Record<string, unknown>) {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.run(...params);\n\t}\n\n\tall(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tif (this.isRqbV2Query) return this.allRqbV2(placeholderValues);\n\n\t\tconst { fields, query, logger, joinsNotNullableMap, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.all(...params);\n\t\t}\n\n\t\tconst rows = this.values(placeholderValues) as unknown[][];\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(rows) as T['all'];\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['all']>\n\t\t\t\t?? makeJitQueryMapper<T['all']>(fields!, joinsNotNullableMap))(rows)\n\t\t\t: rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tget(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tif (this.isRqbV2Query) return this.getRqbV2(placeholderValues);\n\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst row = this.stmt.get(...params);\n\t\t\tif (!row) return undefined;\n\n\t\t\treturn row;\n\t\t}\n\n\t\tconst row = this.stmt.values(...params)[0];\n\t\tif (!row) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)([row]) as T['get'];\n\t\t}\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RowsMapper<T['get'][]>\n\t\t\t\t?? makeJitQueryMapper<T['get'][]>(fields!, joinsNotNullableMap))(\n\t\t\t\t\t[row],\n\t\t\t\t)[0]\n\t\t\t: mapResultRow(fields!, row, joinsNotNullableMap);\n\t}\n\n\tprivate allRqbV2(placeholderValues?: Record<string, unknown>): T['all'] {\n\t\tconst { query, logger, stmt, customResultMapper } = this;\n\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\n\t\tlogger.logQuery(query.sql, params);\n\n\t\tconst rows = stmt.all(...params) as Record<string, unknown>[];\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['all']>\n\t\t\t\t?? makeJitRqbMapper<T['all']>(this.rqbConfig!))(rows)\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(rows);\n\t}\n\n\tprivate getRqbV2(placeholderValues?: Record<string, unknown>): T['get'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\n\t\tconst { stmt, customResultMapper } = this;\n\n\t\tconst row = stmt.get(...params) as Record<string, unknown>;\n\t\tif (!row) return undefined;\n\n\t\treturn this.useJitMappers\n\t\t\t? (this.jitMapper = this.jitMapper as RelationalRowsMapper<T['get'][]>\n\t\t\t\t?? makeJitRqbMapper<T['get'][]>(this.rqbConfig!))([row])\n\t\t\t: (customResultMapper as (rows: Record<string, unknown>[]) => unknown)(\n\t\t\t\t[row],\n\t\t\t);\n\t}\n\n\tvalues(placeholderValues?: Record<string, unknown>): T['values'] {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.values(...params);\n\t}\n}\n"],"mappings":"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"}
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  const require_cockroach_session = require('./session.cjs');
4
4
  let __entity_ts = require("../entity.cjs");
5
+ let __utils_ts = require("../utils.cjs");
5
6
  let __logger_ts = require("../logger.cjs");
6
7
  let ___relations_ts = require("../_relations.cjs");
7
8
  ___relations_ts = require_runtime.__toESM(___relations_ts);
@@ -21,7 +22,7 @@ var NodeCockroachDriver = class {
21
22
  createSession(schema) {
22
23
  return new require_cockroach_session.NodeCockroachSession(this.client, this.dialect, schema, {
23
24
  logger: this.options.logger,
24
- useJitMapper: this.options.useJitMapper
25
+ useJitMappers: this.options.useJitMappers
25
26
  });
26
27
  }
27
28
  };
@@ -44,7 +45,7 @@ function construct(client, config = {}) {
44
45
  }
45
46
  const db = new NodeCockroachDatabase(dialect, new NodeCockroachDriver(client, dialect, {
46
47
  logger,
47
- useJitMapper: config.useJitMappers
48
+ useJitMappers: (0, __utils_ts.jitCompatCheck)(config.useJitMappers)
48
49
  }).createSession(schema), schema);
49
50
  db.$client = client;
50
51
  return db;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.cjs","names":["entityKind","NodeCockroachSession","CockroachDatabase","CockroachDialect","DefaultLogger","V1"],"sources":["../../src/cockroach/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport * as V1 from '~/_relations.ts';\nimport { CockroachDatabase } from '~/cockroach-core/db.ts';\nimport { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { NodeCockroachClient, NodeCockroachQueryResultHKT } from './session.ts';\nimport { NodeCockroachSession } from './session.ts';\n\nexport interface CockroachDriverOptions {\n\tlogger?: Logger;\n\tuseJitMapper?: boolean;\n}\n\nexport class NodeCockroachDriver {\n\tstatic readonly [entityKind]: string = 'NodeCockroachDriver';\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tprivate dialect: CockroachDialect,\n\t\tprivate options: CockroachDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodeCockroachSession<Record<string, unknown>, V1.TablesRelationalConfig> {\n\t\treturn new NodeCockroachSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMapper: this.options.useJitMapper,\n\t\t});\n\t}\n}\n\nexport class NodeCockroachDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends CockroachDatabase<NodeCockroachQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = NodeCockroachClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new CockroachDialect();\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\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\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 driver = new NodeCockroachDriver(client, dialect, { logger, useJitMapper: config.useJitMappers });\n\tconst session = driver.createSession(schema);\n\tconst db = new NodeCockroachDatabase(dialect, session, schema as any) as NodeCockroachDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t& DrizzleConfig<TSchema>\n\t);\n\n\tif (client) return construct(client, drizzleConfig);\n\n\tconst instance = typeof connection === 'string'\n\t\t? new pg.Pool({\n\t\t\tconnectionString: connection,\n\t\t})\n\t\t: new pg.Pool(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodeCockroachDatabase<TSchema> & {\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":";;;;;;;;;;;;;AAgBA,IAAa,sBAAb,MAAiC;CAChC,QAAiBA,0BAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAkC,EAAE,EAC3C;EAHO;EACA;EACA;;CAIT,cACC,QAC2E;AAC3E,SAAO,IAAIC,+CAAqB,KAAK,QAAQ,KAAK,SAAS,QAAQ;GAClE,QAAQ,KAAK,QAAQ;GACrB,cAAc,KAAK,QAAQ;GAC3B,CAAC;;;AAIJ,IAAa,wBAAb,cAEUC,yCAAwD;CACjE,QAA0BF,0BAAsB;;AAGjD,SAAS,UAIR,QACA,SAAiC,EAAE,EAGlC;CACD,MAAM,UAAU,IAAIG,8CAAkB;CACtC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAKF,MAAM,KAAK,IAAI,sBAAsB,SAFtB,IAAI,oBAAoB,QAAQ,SAAS;EAAE;EAAQ,cAAc,OAAO;EAAe,CAAC,CAChF,cAAc,OAAO,EACW,OAAc;AACrE,CAAO,GAAI,UAAU;AAErB,QAAO;;AAGR,SAAgB,QAIf,GAAG,QAoBF;AACD,KAAI,OAAO,OAAO,OAAO,SAKxB,QAAO,UAJU,IAAI,WAAG,KAAK,EAC5B,kBAAkB,OAAO,IACzB,CAAC,EAEyB,OAAO,GAAyC;CAG5E,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAKxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAQnD,QAAO,UANU,OAAO,eAAe,WACpC,IAAI,WAAG,KAAK,EACb,kBAAkB,YAClB,CAAC,GACA,IAAI,WAAG,KAAK,WAAY,EAEA,cAAc;;;CAIlC,SAAS,KACf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
1
+ {"version":3,"file":"driver.cjs","names":["entityKind","NodeCockroachSession","CockroachDatabase","CockroachDialect","DefaultLogger","V1"],"sources":["../../src/cockroach/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport * as V1 from '~/_relations.ts';\nimport { CockroachDatabase } from '~/cockroach-core/db.ts';\nimport { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport type { NodeCockroachClient, NodeCockroachQueryResultHKT } from './session.ts';\nimport { NodeCockroachSession } from './session.ts';\n\nexport interface CockroachDriverOptions {\n\tlogger?: Logger;\n\tuseJitMappers?: boolean;\n}\n\nexport class NodeCockroachDriver {\n\tstatic readonly [entityKind]: string = 'NodeCockroachDriver';\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tprivate dialect: CockroachDialect,\n\t\tprivate options: CockroachDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodeCockroachSession<Record<string, unknown>, V1.TablesRelationalConfig> {\n\t\treturn new NodeCockroachSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMappers: this.options.useJitMappers,\n\t\t});\n\t}\n}\n\nexport class NodeCockroachDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends CockroachDatabase<NodeCockroachQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = NodeCockroachClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new CockroachDialect();\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\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\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 driver = new NodeCockroachDriver(client, dialect, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\tconst session = driver.createSession(schema);\n\tconst db = new NodeCockroachDatabase(dialect, session, schema as any) as NodeCockroachDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t& DrizzleConfig<TSchema>\n\t);\n\n\tif (client) return construct(client, drizzleConfig);\n\n\tconst instance = typeof connection === 'string'\n\t\t? new pg.Pool({\n\t\t\tconnectionString: connection,\n\t\t})\n\t\t: new pg.Pool(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodeCockroachDatabase<TSchema> & {\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":";;;;;;;;;;;;;;AAgBA,IAAa,sBAAb,MAAiC;CAChC,QAAiBA,0BAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAkC,EAAE,EAC3C;EAHO;EACA;EACA;;CAIT,cACC,QAC2E;AAC3E,SAAO,IAAIC,+CAAqB,KAAK,QAAQ,KAAK,SAAS,QAAQ;GAClE,QAAQ,KAAK,QAAQ;GACrB,eAAe,KAAK,QAAQ;GAC5B,CAAC;;;AAIJ,IAAa,wBAAb,cAEUC,yCAAwD;CACjE,QAA0BF,0BAAsB;;AAGjD,SAAS,UAIR,QACA,SAAiC,EAAE,EAGlC;CACD,MAAM,UAAU,IAAIG,8CAAkB;CACtC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAQF,MAAM,KAAK,IAAI,sBAAsB,SALtB,IAAI,oBAAoB,QAAQ,SAAS;EACvD;EACA,8CAA8B,OAAO,cAAc;EACnD,CAAC,CACqB,cAAc,OAAO,EACW,OAAc;AACrE,CAAO,GAAI,UAAU;AAErB,QAAO;;AAGR,SAAgB,QAIf,GAAG,QAoBF;AACD,KAAI,OAAO,OAAO,OAAO,SAKxB,QAAO,UAJU,IAAI,WAAG,KAAK,EAC5B,kBAAkB,OAAO,IACzB,CAAC,EAEyB,OAAO,GAAyC;CAG5E,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAKxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAQnD,QAAO,UANU,OAAO,eAAe,WACpC,IAAI,WAAG,KAAK,EACb,kBAAkB,YAClB,CAAC,GACA,IAAI,WAAG,KAAK,WAAY,EAEA,cAAc;;;CAIlC,SAAS,KACf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
@@ -10,7 +10,7 @@ import { CockroachDatabase } from "../cockroach-core/db.cjs";
10
10
  //#region src/cockroach/driver.d.ts
11
11
  interface CockroachDriverOptions {
12
12
  logger?: Logger;
13
- useJitMapper?: boolean;
13
+ useJitMappers?: boolean;
14
14
  }
15
15
  declare class NodeCockroachDriver {
16
16
  private client;
@@ -10,7 +10,7 @@ import { CockroachDialect } from "../cockroach-core/dialect.js";
10
10
  //#region src/cockroach/driver.d.ts
11
11
  interface CockroachDriverOptions {
12
12
  logger?: Logger;
13
- useJitMapper?: boolean;
13
+ useJitMappers?: boolean;
14
14
  }
15
15
  declare class NodeCockroachDriver {
16
16
  private client;
@@ -1,5 +1,6 @@
1
1
  import { NodeCockroachSession } from "./session.js";
2
2
  import { entityKind } from "../entity.js";
3
+ import { jitCompatCheck } from "../utils.js";
3
4
  import { DefaultLogger } from "../logger.js";
4
5
  import * as V1 from "../_relations.js";
5
6
  import pg from "pg";
@@ -17,7 +18,7 @@ var NodeCockroachDriver = class {
17
18
  createSession(schema) {
18
19
  return new NodeCockroachSession(this.client, this.dialect, schema, {
19
20
  logger: this.options.logger,
20
- useJitMapper: this.options.useJitMapper
21
+ useJitMappers: this.options.useJitMappers
21
22
  });
22
23
  }
23
24
  };
@@ -40,7 +41,7 @@ function construct(client, config = {}) {
40
41
  }
41
42
  const db = new NodeCockroachDatabase(dialect, new NodeCockroachDriver(client, dialect, {
42
43
  logger,
43
- useJitMapper: config.useJitMappers
44
+ useJitMappers: jitCompatCheck(config.useJitMappers)
44
45
  }).createSession(schema), schema);
45
46
  db.$client = client;
46
47
  return db;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":[],"sources":["../../src/cockroach/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport * as V1 from '~/_relations.ts';\nimport { CockroachDatabase } from '~/cockroach-core/db.ts';\nimport { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport type { NodeCockroachClient, NodeCockroachQueryResultHKT } from './session.ts';\nimport { NodeCockroachSession } from './session.ts';\n\nexport interface CockroachDriverOptions {\n\tlogger?: Logger;\n\tuseJitMapper?: boolean;\n}\n\nexport class NodeCockroachDriver {\n\tstatic readonly [entityKind]: string = 'NodeCockroachDriver';\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tprivate dialect: CockroachDialect,\n\t\tprivate options: CockroachDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodeCockroachSession<Record<string, unknown>, V1.TablesRelationalConfig> {\n\t\treturn new NodeCockroachSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMapper: this.options.useJitMapper,\n\t\t});\n\t}\n}\n\nexport class NodeCockroachDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends CockroachDatabase<NodeCockroachQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = NodeCockroachClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new CockroachDialect();\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\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\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 driver = new NodeCockroachDriver(client, dialect, { logger, useJitMapper: config.useJitMappers });\n\tconst session = driver.createSession(schema);\n\tconst db = new NodeCockroachDatabase(dialect, session, schema as any) as NodeCockroachDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t& DrizzleConfig<TSchema>\n\t);\n\n\tif (client) return construct(client, drizzleConfig);\n\n\tconst instance = typeof connection === 'string'\n\t\t? new pg.Pool({\n\t\t\tconnectionString: connection,\n\t\t})\n\t\t: new pg.Pool(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodeCockroachDatabase<TSchema> & {\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":";;;;;;;;;AAgBA,IAAa,sBAAb,MAAiC;CAChC,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAkC,EAAE,EAC3C;EAHO;EACA;EACA;;CAIT,cACC,QAC2E;AAC3E,SAAO,IAAI,qBAAqB,KAAK,QAAQ,KAAK,SAAS,QAAQ;GAClE,QAAQ,KAAK,QAAQ;GACrB,cAAc,KAAK,QAAQ;GAC3B,CAAC;;;AAIJ,IAAa,wBAAb,cAEU,kBAAwD;CACjE,QAA0B,cAAsB;;AAGjD,SAAS,UAIR,QACA,SAAiC,EAAE,EAGlC;CACD,MAAM,UAAU,IAAI,kBAAkB;CACtC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAKF,MAAM,KAAK,IAAI,sBAAsB,SAFtB,IAAI,oBAAoB,QAAQ,SAAS;EAAE;EAAQ,cAAc,OAAO;EAAe,CAAC,CAChF,cAAc,OAAO,EACW,OAAc;AACrE,CAAO,GAAI,UAAU;AAErB,QAAO;;AAGR,SAAgB,QAIf,GAAG,QAoBF;AACD,KAAI,OAAO,OAAO,OAAO,SAKxB,QAAO,UAJU,IAAI,GAAG,KAAK,EAC5B,kBAAkB,OAAO,IACzB,CAAC,EAEyB,OAAO,GAAyC;CAG5E,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAKxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAQnD,QAAO,UANU,OAAO,eAAe,WACpC,IAAI,GAAG,KAAK,EACb,kBAAkB,YAClB,CAAC,GACA,IAAI,GAAG,KAAK,WAAY,EAEA,cAAc;;;CAIlC,SAAS,KACf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
1
+ {"version":3,"file":"driver.js","names":[],"sources":["../../src/cockroach/driver.ts"],"sourcesContent":["import pg, { type Pool, type PoolConfig } from 'pg';\nimport * as V1 from '~/_relations.ts';\nimport { CockroachDatabase } from '~/cockroach-core/db.ts';\nimport { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport type { NodeCockroachClient, NodeCockroachQueryResultHKT } from './session.ts';\nimport { NodeCockroachSession } from './session.ts';\n\nexport interface CockroachDriverOptions {\n\tlogger?: Logger;\n\tuseJitMappers?: boolean;\n}\n\nexport class NodeCockroachDriver {\n\tstatic readonly [entityKind]: string = 'NodeCockroachDriver';\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tprivate dialect: CockroachDialect,\n\t\tprivate options: CockroachDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined,\n\t): NodeCockroachSession<Record<string, unknown>, V1.TablesRelationalConfig> {\n\t\treturn new NodeCockroachSession(this.client, this.dialect, schema, {\n\t\t\tlogger: this.options.logger,\n\t\t\tuseJitMappers: this.options.useJitMappers,\n\t\t});\n\t}\n}\n\nexport class NodeCockroachDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends CockroachDatabase<NodeCockroachQueryResultHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = NodeCockroachClient,\n>(\n\tclient: TClient,\n\tconfig: DrizzleConfig<TSchema> = {},\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new CockroachDialect();\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\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\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 driver = new NodeCockroachDriver(client, dialect, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.useJitMappers),\n\t});\n\tconst session = driver.createSession(schema);\n\tconst db = new NodeCockroachDatabase(dialect, session, schema as any) as NodeCockroachDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends NodeCockroachClient = Pool,\n>(\n\t...params:\n\t\t| [\n\t\t\tstring,\n\t\t]\n\t\t| [\n\t\t\tstring,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n): NodeCockroachDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new pg.Pool({\n\t\t\tconnectionString: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as (\n\t\t& ({ connection?: PoolConfig | string; client?: TClient })\n\t\t& DrizzleConfig<TSchema>\n\t);\n\n\tif (client) return construct(client, drizzleConfig);\n\n\tconst instance = typeof connection === 'string'\n\t\t? new pg.Pool({\n\t\t\tconnectionString: connection,\n\t\t})\n\t\t: new pg.Pool(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): NodeCockroachDatabase<TSchema> & {\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":";;;;;;;;;;AAgBA,IAAa,sBAAb,MAAiC;CAChC,QAAiB,cAAsB;CAEvC,YACC,AAAQ,QACR,AAAQ,SACR,AAAQ,UAAkC,EAAE,EAC3C;EAHO;EACA;EACA;;CAIT,cACC,QAC2E;AAC3E,SAAO,IAAI,qBAAqB,KAAK,QAAQ,KAAK,SAAS,QAAQ;GAClE,QAAQ,KAAK,QAAQ;GACrB,eAAe,KAAK,QAAQ;GAC5B,CAAC;;;AAIJ,IAAa,wBAAb,cAEU,kBAAwD;CACjE,QAA0B,cAAsB;;AAGjD,SAAS,UAIR,QACA,SAAiC,EAAE,EAGlC;CACD,MAAM,UAAU,IAAI,kBAAkB;CACtC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAQF,MAAM,KAAK,IAAI,sBAAsB,SALtB,IAAI,oBAAoB,QAAQ,SAAS;EACvD;EACA,eAAe,eAAe,OAAO,cAAc;EACnD,CAAC,CACqB,cAAc,OAAO,EACW,OAAc;AACrE,CAAO,GAAI,UAAU;AAErB,QAAO;;AAGR,SAAgB,QAIf,GAAG,QAoBF;AACD,KAAI,OAAO,OAAO,OAAO,SAKxB,QAAO,UAJU,IAAI,GAAG,KAAK,EAC5B,kBAAkB,OAAO,IACzB,CAAC,EAEyB,OAAO,GAAyC;CAG5E,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAKxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAQnD,QAAO,UANU,OAAO,eAAe,WACpC,IAAI,GAAG,KAAK,EACb,kBAAkB,YAClB,CAAC,GACA,IAAI,GAAG,KAAK,WAAY,EAEA,cAAc;;;CAIlC,SAAS,KACf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
@@ -17,7 +17,7 @@ var NodeCockroachPreparedQuery = class extends __cockroach_core_session_ts.Cockr
17
17
  rawQueryConfig;
18
18
  queryConfig;
19
19
  jitMapper;
20
- constructor(client, queryString, params, logger, fields, name, useJitMapper, customResultMapper) {
20
+ constructor(client, queryString, params, logger, fields, name, useJitMappers, customResultMapper) {
21
21
  super({
22
22
  sql: queryString,
23
23
  params
@@ -26,7 +26,7 @@ var NodeCockroachPreparedQuery = class extends __cockroach_core_session_ts.Cockr
26
26
  this.params = params;
27
27
  this.logger = logger;
28
28
  this.fields = fields;
29
- this.useJitMapper = useJitMapper;
29
+ this.useJitMappers = useJitMappers;
30
30
  this.customResultMapper = customResultMapper;
31
31
  this.rawQueryConfig = {
32
32
  name,
@@ -85,7 +85,7 @@ var NodeCockroachPreparedQuery = class extends __cockroach_core_session_ts.Cockr
85
85
  });
86
86
  return __tracing_ts.tracer.startActiveSpan("drizzle.mapResponse", () => {
87
87
  if (customResultMapper) return customResultMapper(result.rows);
88
- return this.useJitMapper ? (this.jitMapper ??= (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(result.rows) : result.rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
88
+ return this.useJitMappers ? (this.jitMapper ??= (0, __utils_ts.makeJitQueryMapper)(fields, joinsNotNullableMap))(result.rows) : result.rows.map((row) => (0, __utils_ts.mapResultRow)(fields, row, joinsNotNullableMap));
89
89
  });
90
90
  });
91
91
  }
@@ -115,7 +115,7 @@ var NodeCockroachSession = class NodeCockroachSession extends __cockroach_core_s
115
115
  this.logger = options.logger ?? new __logger_ts.NoopLogger();
116
116
  }
117
117
  prepareQuery(query, fields, name, customResultMapper) {
118
- return new NodeCockroachPreparedQuery(this.client, query.sql, query.params, this.logger, fields, name, this.options.useJitMapper, customResultMapper);
118
+ return new NodeCockroachPreparedQuery(this.client, query.sql, query.params, this.logger, fields, name, this.options.useJitMappers, customResultMapper);
119
119
  }
120
120
  async transaction(transaction, config) {
121
121
  const session = this.client instanceof Pool ? new NodeCockroachSession(await this.client.connect(), this.dialect, this.schema, this.options) : this;
@@ -1 +1 @@
1
- {"version":3,"file":"session.cjs","names":["CockroachPreparedQuery","entityKind","tracer","CockroachSession","NoopLogger","CockroachTransaction","sql"],"sources":["../../src/cockroach/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport type * as V1 from '~/_relations.ts';\nimport type { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { CockroachTransaction } from '~/cockroach-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/cockroach-core/query-builders/select.types.ts';\nimport type {\n\tCockroachQueryResultHKT,\n\tCockroachTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/cockroach-core/session.ts';\nimport { CockroachPreparedQuery, CockroachSession } from '~/cockroach-core/session.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodeCockroachClient = pg.Pool | PoolClient | Client;\n\nexport class NodeCockroachPreparedQuery<T extends PreparedQueryConfig> extends CockroachPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\tprivate jitMapper?: RowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(query, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(result.rows);\n\t\t\t\t}\n\n\t\t\t\treturn this.useJitMapper\n\t\t\t\t\t? (this.jitMapper ??= makeJitQueryMapper(fields!, joinsNotNullableMap))(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport interface NodeCockroachSessionOptions {\n\tlogger?: Logger;\n\tuseJitMapper?: boolean;\n}\n\nexport class NodeCockroachSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachSession<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tdialect: CockroachDialect,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodeCockroachSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): CockroachPreparedQuery<T> {\n\t\treturn new NodeCockroachPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: CockroachTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t? new NodeCockroachSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\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 (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodeCockroachTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachTransaction<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\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\nexport interface NodeCockroachQueryResultHKT extends CockroachQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.cjs","names":["CockroachPreparedQuery","entityKind","tracer","CockroachSession","NoopLogger","CockroachTransaction","sql"],"sources":["../../src/cockroach/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport type * as V1 from '~/_relations.ts';\nimport type { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { CockroachTransaction } from '~/cockroach-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/cockroach-core/query-builders/select.types.ts';\nimport type {\n\tCockroachQueryResultHKT,\n\tCockroachTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/cockroach-core/session.ts';\nimport { CockroachPreparedQuery, CockroachSession } from '~/cockroach-core/session.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodeCockroachClient = pg.Pool | PoolClient | Client;\n\nexport class NodeCockroachPreparedQuery<T extends PreparedQueryConfig> extends CockroachPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\tprivate jitMapper?: RowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(query, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(result.rows);\n\t\t\t\t}\n\n\t\t\t\treturn this.useJitMappers\n\t\t\t\t\t? (this.jitMapper ??= makeJitQueryMapper(fields!, joinsNotNullableMap))(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport interface NodeCockroachSessionOptions {\n\tlogger?: Logger;\n\tuseJitMappers?: boolean;\n}\n\nexport class NodeCockroachSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachSession<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tdialect: CockroachDialect,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodeCockroachSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): CockroachPreparedQuery<T> {\n\t\treturn new NodeCockroachPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: CockroachTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t? new NodeCockroachSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\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 (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodeCockroachTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachTransaction<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\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\nexport interface NodeCockroachQueryResultHKT extends CockroachQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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"}
@@ -16,19 +16,19 @@ declare class NodeCockroachPreparedQuery<T extends PreparedQueryConfig> extends
16
16
  private params;
17
17
  private logger;
18
18
  private fields;
19
- private useJitMapper;
19
+ private useJitMappers;
20
20
  private customResultMapper?;
21
21
  static readonly [entityKind]: string;
22
22
  private rawQueryConfig;
23
23
  private queryConfig;
24
24
  private jitMapper?;
25
- constructor(client: NodeCockroachClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
25
+ constructor(client: NodeCockroachClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, useJitMappers: boolean | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
26
26
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
27
27
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
28
28
  }
29
29
  interface NodeCockroachSessionOptions {
30
30
  logger?: Logger;
31
- useJitMapper?: boolean;
31
+ useJitMappers?: boolean;
32
32
  }
33
33
  declare class NodeCockroachSession<TFullSchema extends Record<string, unknown>, TSchema extends V1.TablesRelationalConfig> extends CockroachSession<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {
34
34
  private client;
@@ -16,19 +16,19 @@ declare class NodeCockroachPreparedQuery<T extends PreparedQueryConfig> extends
16
16
  private params;
17
17
  private logger;
18
18
  private fields;
19
- private useJitMapper;
19
+ private useJitMappers;
20
20
  private customResultMapper?;
21
21
  static readonly [entityKind]: string;
22
22
  private rawQueryConfig;
23
23
  private queryConfig;
24
24
  private jitMapper?;
25
- constructor(client: NodeCockroachClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, useJitMapper: boolean | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
25
+ constructor(client: NodeCockroachClient, queryString: string, params: unknown[], logger: Logger, fields: SelectedFieldsOrdered | undefined, name: string | undefined, useJitMappers: boolean | undefined, customResultMapper?: ((rows: unknown[][]) => T["execute"]) | undefined);
26
26
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
27
27
  all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
28
28
  }
29
29
  interface NodeCockroachSessionOptions {
30
30
  logger?: Logger;
31
- useJitMapper?: boolean;
31
+ useJitMappers?: boolean;
32
32
  }
33
33
  declare class NodeCockroachSession<TFullSchema extends Record<string, unknown>, TSchema extends V1.TablesRelationalConfig> extends CockroachSession<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {
34
34
  private client;
@@ -14,7 +14,7 @@ var NodeCockroachPreparedQuery = class extends CockroachPreparedQuery {
14
14
  rawQueryConfig;
15
15
  queryConfig;
16
16
  jitMapper;
17
- constructor(client, queryString, params, logger, fields, name, useJitMapper, customResultMapper) {
17
+ constructor(client, queryString, params, logger, fields, name, useJitMappers, customResultMapper) {
18
18
  super({
19
19
  sql: queryString,
20
20
  params
@@ -23,7 +23,7 @@ var NodeCockroachPreparedQuery = class extends CockroachPreparedQuery {
23
23
  this.params = params;
24
24
  this.logger = logger;
25
25
  this.fields = fields;
26
- this.useJitMapper = useJitMapper;
26
+ this.useJitMappers = useJitMappers;
27
27
  this.customResultMapper = customResultMapper;
28
28
  this.rawQueryConfig = {
29
29
  name,
@@ -82,7 +82,7 @@ var NodeCockroachPreparedQuery = class extends CockroachPreparedQuery {
82
82
  });
83
83
  return tracer.startActiveSpan("drizzle.mapResponse", () => {
84
84
  if (customResultMapper) return customResultMapper(result.rows);
85
- return this.useJitMapper ? (this.jitMapper ??= makeJitQueryMapper(fields, joinsNotNullableMap))(result.rows) : result.rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
85
+ return this.useJitMappers ? (this.jitMapper ??= makeJitQueryMapper(fields, joinsNotNullableMap))(result.rows) : result.rows.map((row) => mapResultRow(fields, row, joinsNotNullableMap));
86
86
  });
87
87
  });
88
88
  }
@@ -112,7 +112,7 @@ var NodeCockroachSession = class NodeCockroachSession extends CockroachSession {
112
112
  this.logger = options.logger ?? new NoopLogger();
113
113
  }
114
114
  prepareQuery(query, fields, name, customResultMapper) {
115
- return new NodeCockroachPreparedQuery(this.client, query.sql, query.params, this.logger, fields, name, this.options.useJitMapper, customResultMapper);
115
+ return new NodeCockroachPreparedQuery(this.client, query.sql, query.params, this.logger, fields, name, this.options.useJitMappers, customResultMapper);
116
116
  }
117
117
  async transaction(transaction, config) {
118
118
  const session = this.client instanceof Pool$1 ? new NodeCockroachSession(await this.client.connect(), this.dialect, this.schema, this.options) : this;
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","names":["Pool"],"sources":["../../src/cockroach/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport type * as V1 from '~/_relations.ts';\nimport type { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { CockroachTransaction } from '~/cockroach-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/cockroach-core/query-builders/select.types.ts';\nimport type {\n\tCockroachQueryResultHKT,\n\tCockroachTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/cockroach-core/session.ts';\nimport { CockroachPreparedQuery, CockroachSession } from '~/cockroach-core/session.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodeCockroachClient = pg.Pool | PoolClient | Client;\n\nexport class NodeCockroachPreparedQuery<T extends PreparedQueryConfig> extends CockroachPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\tprivate jitMapper?: RowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate useJitMapper: boolean | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(query, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(result.rows);\n\t\t\t\t}\n\n\t\t\t\treturn this.useJitMapper\n\t\t\t\t\t? (this.jitMapper ??= makeJitQueryMapper(fields!, joinsNotNullableMap))(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport interface NodeCockroachSessionOptions {\n\tlogger?: Logger;\n\tuseJitMapper?: boolean;\n}\n\nexport class NodeCockroachSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachSession<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tdialect: CockroachDialect,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodeCockroachSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): CockroachPreparedQuery<T> {\n\t\treturn new NodeCockroachPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tthis.options.useJitMapper,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: CockroachTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t? new NodeCockroachSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\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 (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodeCockroachTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachTransaction<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\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\nexport interface NodeCockroachQueryResultHKT extends CockroachQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"session.js","names":["Pool"],"sources":["../../src/cockroach/session.ts"],"sourcesContent":["import type { Client, PoolClient, QueryArrayConfig, QueryConfig, QueryResult, QueryResultRow } from 'pg';\nimport pg from 'pg';\nimport type * as V1 from '~/_relations.ts';\nimport type { CockroachDialect } from '~/cockroach-core/dialect.ts';\nimport { CockroachTransaction } from '~/cockroach-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/cockroach-core/query-builders/select.types.ts';\nimport type {\n\tCockroachQueryResultHKT,\n\tCockroachTransactionConfig,\n\tPreparedQueryConfig,\n} from '~/cockroach-core/session.ts';\nimport { CockroachPreparedQuery, CockroachSession } from '~/cockroach-core/session.ts';\nimport { entityKind } from '~/entity.ts';\nimport { type Logger, NoopLogger } from '~/logger.ts';\nimport { fillPlaceholders, type Query, type SQL, sql } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport { type Assume, makeJitQueryMapper, mapResultRow, type RowsMapper } from '~/utils.ts';\n\nconst { Pool, types } = pg;\n\nexport type NodeCockroachClient = pg.Pool | PoolClient | Client;\n\nexport class NodeCockroachPreparedQuery<T extends PreparedQueryConfig> extends CockroachPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachPreparedQuery';\n\n\tprivate rawQueryConfig: QueryConfig;\n\tprivate queryConfig: QueryArrayConfig;\n\tprivate jitMapper?: RowsMapper<T['execute']>;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tqueryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate logger: Logger,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tprivate useJitMappers: boolean | undefined,\n\t\tprivate customResultMapper?: (rows: unknown[][]) => T['execute'],\n\t) {\n\t\tsuper({ sql: queryString, params });\n\t\tthis.rawQueryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tthis.queryConfig = {\n\t\t\tname,\n\t\t\ttext: queryString,\n\t\t\trowMode: 'array',\n\t\t\ttypes: {\n\t\t\t\t// @ts-ignore\n\t\t\t\tgetTypeParser: (typeId, format) => {\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMPTZ) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.TIMESTAMP) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.DATE) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeId === types.builtins.INTERVAL) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// numeric[]\n\t\t\t\t\tif (typeId as number === 1231) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp[]\n\t\t\t\t\tif (typeId as number === 1115) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// timestamp with timezone[]\n\t\t\t\t\tif (typeId as number === 1185) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// interval[]\n\t\t\t\t\tif (typeId as number === 1187) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// date[]\n\t\t\t\t\tif (typeId as number === 1182) {\n\t\t\t\t\t\treturn (val: any) => val;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn types.getTypeParser(typeId, format);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', async () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\n\t\t\tconst { fields, rawQueryConfig: rawQuery, client, queryConfig: query, joinsNotNullableMap, customResultMapper } =\n\t\t\t\tthis;\n\t\t\tif (!fields && !customResultMapper) {\n\t\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', async (span) => {\n\t\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t\t'drizzle.query.name': rawQuery.name,\n\t\t\t\t\t\t'drizzle.query.text': rawQuery.text,\n\t\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t\t});\n\t\t\t\t\treturn client.query(rawQuery, params);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst result = await tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': query.name,\n\t\t\t\t\t'drizzle.query.text': query.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn client.query(query, params);\n\t\t\t});\n\n\t\t\treturn tracer.startActiveSpan('drizzle.mapResponse', () => {\n\t\t\t\tif (customResultMapper) {\n\t\t\t\t\treturn (customResultMapper as (rows: unknown[][]) => unknown)(result.rows);\n\t\t\t\t}\n\n\t\t\t\treturn this.useJitMappers\n\t\t\t\t\t? (this.jitMapper ??= makeJitQueryMapper(fields!, joinsNotNullableMap))(result.rows)\n\t\t\t\t\t: result.rows.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t\t\t});\n\t\t});\n\t}\n\n\tall(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['all']> {\n\t\treturn tracer.startActiveSpan('drizzle.execute', () => {\n\t\t\tconst params = fillPlaceholders(this.params, placeholderValues);\n\t\t\tthis.logger.logQuery(this.rawQueryConfig.text, params);\n\t\t\treturn tracer.startActiveSpan('drizzle.driver.execute', (span) => {\n\t\t\t\tspan?.setAttributes({\n\t\t\t\t\t'drizzle.query.name': this.rawQueryConfig.name,\n\t\t\t\t\t'drizzle.query.text': this.rawQueryConfig.text,\n\t\t\t\t\t'drizzle.query.params': JSON.stringify(params),\n\t\t\t\t});\n\t\t\t\treturn this.client.query(this.rawQueryConfig, params).then((result) => result.rows);\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport interface NodeCockroachSessionOptions {\n\tlogger?: Logger;\n\tuseJitMappers?: boolean;\n}\n\nexport class NodeCockroachSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachSession<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachSession';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: NodeCockroachClient,\n\t\tdialect: CockroachDialect,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: NodeCockroachSessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): CockroachPreparedQuery<T> {\n\t\treturn new NodeCockroachPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tthis.logger,\n\t\t\tfields,\n\t\t\tname,\n\t\t\tthis.options.useJitMappers,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: CockroachTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst session = this.client instanceof Pool // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t? new NodeCockroachSession(await this.client.connect(), this.dialect, this.schema, this.options)\n\t\t\t: this;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(this.dialect, session, this.schema);\n\t\tawait tx.execute(sql`begin${config ? sql` ${tx.getTransactionConfigSQL(config)}` : undefined}`);\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 (error) {\n\t\t\tawait tx.execute(sql`rollback`);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.client instanceof Pool) { // oxlint-disable-line drizzle-internal/no-instanceof\n\t\t\t\t(session.client as PoolClient).release();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst res = await this.execute<{ rows: [{ count: string }] }>(sql);\n\t\treturn Number(\n\t\t\tres['rows'][0]['count'],\n\t\t);\n\t}\n}\n\nexport class NodeCockroachTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends CockroachTransaction<NodeCockroachQueryResultHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'NodeCockroachTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: NodeCockroachTransaction<TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new NodeCockroachTransaction<TFullSchema, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\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\nexport interface NodeCockroachQueryResultHKT extends CockroachQueryResultHKT {\n\ttype: QueryResult<Assume<this['row'], QueryResultRow>>;\n}\n"],"mappings":"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"}
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
3
  const require_durable_sqlite_session = require('./session.cjs');
4
4
  let __entity_ts = require("../entity.cjs");
5
+ let __utils_ts = require("../utils.cjs");
5
6
  let __logger_ts = require("../logger.cjs");
6
7
  let ___relations_ts = require("../_relations.cjs");
7
8
  ___relations_ts = require_runtime.__toESM(___relations_ts);
@@ -29,7 +30,7 @@ function drizzle(client, config = {}) {
29
30
  const relations = config.relations ?? {};
30
31
  const db = new DrizzleSqliteDODatabase("sync", dialect, new require_durable_sqlite_session.SQLiteDOSession(client, dialect, relations, schema, {
31
32
  logger,
32
- useJitMapper: config.useJitMappers
33
+ useJitMappers: (0, __utils_ts.jitCompatCheck)(config.useJitMappers)
33
34
  }), relations, schema, false, true);
34
35
  db.$client = client;
35
36
  return db;