drizzle-orm 0.23.8 → 0.23.9-2b2c353

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 (178) hide show
  1. package/README.md +4 -2
  2. package/aws-data-api/pg/driver.d.ts +1 -1
  3. package/aws-data-api/pg/driver.d.ts.map +1 -1
  4. package/aws-data-api/pg/driver.js +1 -1
  5. package/aws-data-api/pg/driver.js.map +1 -1
  6. package/aws-data-api/pg/migrator.d.ts.map +1 -1
  7. package/aws-data-api/pg/migrator.js +1 -54
  8. package/aws-data-api/pg/migrator.js.map +1 -1
  9. package/aws-data-api/pg/session.d.ts +16 -16
  10. package/aws-data-api/pg/session.d.ts.map +1 -1
  11. package/aws-data-api/pg/session.js +47 -32
  12. package/aws-data-api/pg/session.js.map +1 -1
  13. package/better-sqlite3/session.d.ts +7 -4
  14. package/better-sqlite3/session.d.ts.map +1 -1
  15. package/better-sqlite3/session.js +24 -6
  16. package/better-sqlite3/session.js.map +1 -1
  17. package/bun-sqlite/session.d.ts +7 -3
  18. package/bun-sqlite/session.d.ts.map +1 -1
  19. package/bun-sqlite/session.js +28 -3
  20. package/bun-sqlite/session.js.map +1 -1
  21. package/d1/session.d.ts +6 -4
  22. package/d1/session.d.ts.map +1 -1
  23. package/d1/session.js +31 -12
  24. package/d1/session.js.map +1 -1
  25. package/errors.d.ts +8 -0
  26. package/errors.d.ts.map +1 -0
  27. package/errors.js +25 -0
  28. package/errors.js.map +1 -0
  29. package/index.d.ts +10 -0
  30. package/index.d.ts.map +1 -1
  31. package/index.js +10 -0
  32. package/index.js.map +1 -1
  33. package/libsql/driver.js +1 -1
  34. package/libsql/driver.js.map +1 -1
  35. package/libsql/session.d.ts +13 -12
  36. package/libsql/session.d.ts.map +1 -1
  37. package/libsql/session.js +38 -22
  38. package/libsql/session.js.map +1 -1
  39. package/migrator.d.ts +1 -0
  40. package/migrator.d.ts.map +1 -1
  41. package/migrator.js +3 -5
  42. package/migrator.js.map +1 -1
  43. package/mysql-core/columns/date.common.d.ts +1 -1
  44. package/mysql-core/db.d.ts +4 -3
  45. package/mysql-core/db.d.ts.map +1 -1
  46. package/mysql-core/db.js +3 -0
  47. package/mysql-core/db.js.map +1 -1
  48. package/mysql-core/dialect.d.ts +3 -4
  49. package/mysql-core/dialect.d.ts.map +1 -1
  50. package/mysql-core/dialect.js +15 -45
  51. package/mysql-core/dialect.js.map +1 -1
  52. package/mysql-core/query-builders/select.js +1 -1
  53. package/mysql-core/query-builders/select.js.map +1 -1
  54. package/mysql-core/session.d.ts +18 -2
  55. package/mysql-core/session.d.ts.map +1 -1
  56. package/mysql-core/session.js +31 -1
  57. package/mysql-core/session.js.map +1 -1
  58. package/mysql-core/table.d.ts +2 -2
  59. package/mysql-core/table.d.ts.map +1 -1
  60. package/mysql-core/table.js +5 -5
  61. package/mysql-core/table.js.map +1 -1
  62. package/mysql-core/utils.d.ts +2 -1
  63. package/mysql-core/utils.d.ts.map +1 -1
  64. package/mysql-core/utils.js +2 -0
  65. package/mysql-core/utils.js.map +1 -1
  66. package/mysql2/driver.d.ts +1 -1
  67. package/mysql2/driver.d.ts.map +1 -1
  68. package/mysql2/migrator.d.ts +1 -1
  69. package/mysql2/migrator.d.ts.map +1 -1
  70. package/mysql2/migrator.js +1 -1
  71. package/mysql2/migrator.js.map +1 -1
  72. package/mysql2/session.d.ts +11 -8
  73. package/mysql2/session.d.ts.map +1 -1
  74. package/mysql2/session.js +54 -4
  75. package/mysql2/session.js.map +1 -1
  76. package/neon-serverless/driver.d.ts +1 -1
  77. package/neon-serverless/driver.d.ts.map +1 -1
  78. package/neon-serverless/session.d.ts +11 -5
  79. package/neon-serverless/session.d.ts.map +1 -1
  80. package/neon-serverless/session.js +41 -1
  81. package/neon-serverless/session.js.map +1 -1
  82. package/node-postgres/driver.d.ts +1 -1
  83. package/node-postgres/driver.d.ts.map +1 -1
  84. package/node-postgres/session.d.ts +12 -6
  85. package/node-postgres/session.d.ts.map +1 -1
  86. package/node-postgres/session.js +41 -1
  87. package/node-postgres/session.js.map +1 -1
  88. package/package.json +1 -1
  89. package/pg-core/columns/date.common.d.ts +1 -1
  90. package/pg-core/db.d.ts +6 -5
  91. package/pg-core/db.d.ts.map +1 -1
  92. package/pg-core/db.js +3 -0
  93. package/pg-core/db.js.map +1 -1
  94. package/pg-core/dialect.d.ts.map +1 -1
  95. package/pg-core/dialect.js +13 -20
  96. package/pg-core/dialect.js.map +1 -1
  97. package/pg-core/query-builders/refresh-materialized-view.d.ts +1 -1
  98. package/pg-core/query-builders/refresh-materialized-view.d.ts.map +1 -1
  99. package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
  100. package/pg-core/query-builders/select.js +1 -1
  101. package/pg-core/query-builders/select.js.map +1 -1
  102. package/pg-core/session.d.ts +16 -4
  103. package/pg-core/session.d.ts.map +1 -1
  104. package/pg-core/session.js +30 -6
  105. package/pg-core/session.js.map +1 -1
  106. package/pg-core/table.d.ts +1 -1
  107. package/pg-core/table.d.ts.map +1 -1
  108. package/pg-core/table.js +5 -5
  109. package/pg-core/table.js.map +1 -1
  110. package/pg-core/utils.d.ts +2 -2
  111. package/pg-core/view.js.map +1 -1
  112. package/planetscale-serverless/driver.d.ts +1 -1
  113. package/planetscale-serverless/driver.d.ts.map +1 -1
  114. package/planetscale-serverless/driver.js +1 -1
  115. package/planetscale-serverless/driver.js.map +1 -1
  116. package/planetscale-serverless/migrator.d.ts +1 -1
  117. package/planetscale-serverless/migrator.d.ts.map +1 -1
  118. package/planetscale-serverless/migrator.js +1 -23
  119. package/planetscale-serverless/migrator.js.map +1 -1
  120. package/planetscale-serverless/session.d.ts +12 -15
  121. package/planetscale-serverless/session.d.ts.map +1 -1
  122. package/planetscale-serverless/session.js +31 -12
  123. package/planetscale-serverless/session.js.map +1 -1
  124. package/postgres-js/driver.d.ts +1 -2
  125. package/postgres-js/driver.d.ts.map +1 -1
  126. package/postgres-js/session.d.ts +17 -7
  127. package/postgres-js/session.d.ts.map +1 -1
  128. package/postgres-js/session.js +41 -2
  129. package/postgres-js/session.js.map +1 -1
  130. package/sql/index.d.ts +4 -0
  131. package/sql/index.d.ts.map +1 -1
  132. package/sql/index.js +14 -0
  133. package/sql/index.js.map +1 -1
  134. package/sql-js/session.d.ts +7 -4
  135. package/sql-js/session.d.ts.map +1 -1
  136. package/sql-js/session.js +34 -6
  137. package/sql-js/session.js.map +1 -1
  138. package/sqlite-core/db.d.ts +23 -14
  139. package/sqlite-core/db.d.ts.map +1 -1
  140. package/sqlite-core/db.js +15 -1
  141. package/sqlite-core/db.js.map +1 -1
  142. package/sqlite-core/query-builders/delete.d.ts +1 -1
  143. package/sqlite-core/query-builders/delete.d.ts.map +1 -1
  144. package/sqlite-core/query-builders/delete.js +6 -7
  145. package/sqlite-core/query-builders/delete.js.map +1 -1
  146. package/sqlite-core/query-builders/insert.d.ts +1 -1
  147. package/sqlite-core/query-builders/insert.d.ts.map +1 -1
  148. package/sqlite-core/query-builders/insert.js +6 -7
  149. package/sqlite-core/query-builders/insert.js.map +1 -1
  150. package/sqlite-core/query-builders/select.d.ts +1 -1
  151. package/sqlite-core/query-builders/select.d.ts.map +1 -1
  152. package/sqlite-core/query-builders/select.js +7 -8
  153. package/sqlite-core/query-builders/select.js.map +1 -1
  154. package/sqlite-core/query-builders/update.d.ts +1 -1
  155. package/sqlite-core/query-builders/update.d.ts.map +1 -1
  156. package/sqlite-core/query-builders/update.js +6 -7
  157. package/sqlite-core/query-builders/update.js.map +1 -1
  158. package/sqlite-core/session.d.ts +12 -13
  159. package/sqlite-core/session.d.ts.map +1 -1
  160. package/sqlite-core/session.js +15 -26
  161. package/sqlite-core/session.js.map +1 -1
  162. package/sqlite-core/table.d.ts +1 -1
  163. package/sqlite-core/table.d.ts.map +1 -1
  164. package/sqlite-core/table.js +3 -3
  165. package/sqlite-core/table.js.map +1 -1
  166. package/sqlite-core/utils.d.ts +1 -1
  167. package/sqlite-core/view.d.ts +1 -0
  168. package/sqlite-core/view.d.ts.map +1 -1
  169. package/sqlite-core/view.js +2 -1
  170. package/sqlite-core/view.js.map +1 -1
  171. package/sqlite-proxy/session.d.ts +8 -5
  172. package/sqlite-proxy/session.d.ts.map +1 -1
  173. package/sqlite-proxy/session.js +35 -8
  174. package/sqlite-proxy/session.js.map +1 -1
  175. package/table.d.ts +1 -1
  176. package/table.d.ts.map +1 -1
  177. package/table.js +6 -2
  178. package/table.js.map +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <h1>Drizzle ORM <a href=""><img alt="npm" src="https://img.shields.io/npm/v/drizzle-orm?label="></a></h1>
3
3
  <img alt="npm" src="https://img.shields.io/npm/dm/drizzle-orm">
4
4
  <img alt="npm bundle size" src="https://img.shields.io/bundlephobia/min/drizzle-orm">
5
- <a href="https://discord.gg/yfjTbVXMW4"><img alt="Discord" src="https://img.shields.io/discord/1043890932593987624"></a>
5
+ <a href="https://discord.gg/yfjTbVXMW4"><img alt="Discord" src="https://img.shields.io/discord/1043890932593987624?label=Discord"></a>
6
6
  <img alt="License" src="https://img.shields.io/npm/l/drizzle-orm">
7
7
  <h6><i>If you know SQL, you know Drizzle ORM</i></h6>
8
8
  <hr />
@@ -41,6 +41,7 @@ Drizzle ORM is being battle-tested on production projects by multiple teams 🚀
41
41
  | CockroachDB | ⏳ | |
42
42
 
43
43
  ## Our sponsors ❤️
44
+
44
45
  <p align="center">
45
46
  <a href="https://drizzle.team" target="_blank">
46
47
  <img src='https://api.drizzle.team/github/sponsors/svg'/>
@@ -61,7 +62,8 @@ npm install -D drizzle-kit
61
62
  ```typescript
62
63
  import { eq } from 'drizzle-orm/expressions';
63
64
  import { drizzle } from 'drizzle-orm/node-postgres';
64
- import { integer, pgTable, serial, text, timestamp, varchar, sql } from 'drizzle-orm/pg-core';
65
+ import { integer, pgTable, serial, text, timestamp, varchar } from 'drizzle-orm/pg-core';
66
+ import { sql } from 'drizzle-orm/sql';
65
67
  import { InferModel } from 'drizzle-orm';
66
68
  import { Pool } from 'pg';
67
69
 
@@ -22,7 +22,7 @@ export interface DrizzleConfig {
22
22
  resourceArn: string;
23
23
  secretArn: string;
24
24
  }
25
- export type AwsDataApiPgDatabase = PgDatabase<AwsDataApiPgQueryResultHKT, AwsDataApiSession>;
25
+ export type AwsDataApiPgDatabase = PgDatabase<AwsDataApiPgQueryResultHKT>;
26
26
  export declare class AwsPgDialect extends PgDialect {
27
27
  escapeName(name: string): string;
28
28
  escapeParam(num: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAC,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAFP,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,eAAe;IAIjC,aAAa,IAAI,iBAAiB;CAGlC;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAC;AAE7F,qBAAa,YAAa,SAAQ,SAAS;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAGzC;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAW7F"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAFP,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,eAAe;IAIjC,aAAa,IAAI,iBAAiB;CAGlC;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAAC;AAE1E,qBAAa,YAAa,SAAQ,SAAS;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAGzC;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAW7F"}
@@ -12,7 +12,7 @@ class AwsDataApiDriver {
12
12
  this.options = options;
13
13
  }
14
14
  createSession() {
15
- return new session_1.AwsDataApiSession(this.client, this.dialect, this.options);
15
+ return new session_1.AwsDataApiSession(this.client, this.dialect, this.options, undefined);
16
16
  }
17
17
  }
18
18
  exports.AwsDataApiDriver = AwsDataApiDriver;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":";;;AACA,qCAAyC;AACzC,qCAA0C;AAC1C,+CAA8C;AAE9C,uCAA8C;AAS9C,MAAa,gBAAgB;IAC5B,YACS,MAAwB,EACxB,OAAkB,EAClB,OAAwB;QAFxB,WAAM,GAAN,MAAM,CAAkB;QACxB,YAAO,GAAP,OAAO,CAAW;QAClB,YAAO,GAAP,OAAO,CAAiB;IAEjC,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,2BAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;CACD;AAXD,4CAWC;AAWD,MAAa,YAAa,SAAQ,mBAAS;IACjC,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,IAAI,GAAG,CAAC;IACpB,CAAC;IAEQ,WAAW,CAAC,GAAW;QAC/B,OAAO,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;IACtB,CAAC;CACD;AARD,oCAQC;AAED,SAAgB,OAAO,CAAC,MAAwB,EAAE,MAAqB;IACtE,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC;IACX,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;KAC7B;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;QACnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;KACvB;IACD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,kCAAO,MAAM,KAAE,MAAM,IAAG,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IACvC,OAAO,IAAI,eAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAXD,0BAWC"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/driver.ts"],"names":[],"mappings":";;;AACA,qCAAyC;AACzC,qCAA0C;AAC1C,+CAA8C;AAE9C,uCAA8C;AAS9C,MAAa,gBAAgB;IAC5B,YACS,MAAwB,EACxB,OAAkB,EAClB,OAAwB;QAFxB,WAAM,GAAN,MAAM,CAAkB;QACxB,YAAO,GAAP,OAAO,CAAW;QAClB,YAAO,GAAP,OAAO,CAAiB;IAEjC,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,2BAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClF,CAAC;CACD;AAXD,4CAWC;AAWD,MAAa,YAAa,SAAQ,mBAAS;IACjC,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,IAAI,GAAG,CAAC;IACpB,CAAC;IAEQ,WAAW,CAAC,GAAW;QAC/B,OAAO,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;IACtB,CAAC;CACD;AARD,oCAQC;AAED,SAAgB,OAAO,CAAC,MAAwB,EAAE,MAAqB;IACtE,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC;IACX,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;KAC7B;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;QACnC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;KACvB;IACD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,kCAAO,MAAM,KAAE,MAAM,IAAG,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IACvC,OAAO,IAAI,eAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAXD,0BAWC"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AAGjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,wBAAsB,OAAO,CAAC,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,iBA0CvF"}
1
+ {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,wBAAsB,OAAO,CAAC,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,iBAGvF"}
@@ -8,66 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
11
  Object.defineProperty(exports, "__esModule", { value: true });
19
12
  exports.migrate = void 0;
20
13
  const migrator_1 = require("../../migrator");
21
- const sql_1 = require("../../sql");
22
14
  function migrate(db, config) {
23
- var _a, e_1, _b, _c;
24
15
  return __awaiter(this, void 0, void 0, function* () {
25
16
  const migrations = (0, migrator_1.readMigrationFiles)(config);
26
- // TODO: Write own aws datapi migrator
27
- const { session } = db;
28
- const migrationTableCreate = (0, sql_1.sql) `CREATE TABLE IF NOT EXISTS "drizzle"."__drizzle_migrations" (
29
- id SERIAL PRIMARY KEY,
30
- hash text NOT NULL,
31
- created_at bigint
32
- )`;
33
- yield session.execute((0, sql_1.sql) `CREATE SCHEMA IF NOT EXISTS "drizzle"`);
34
- yield session.execute(migrationTableCreate);
35
- const dbMigrations = yield session.execute((0, sql_1.sql) `SELECT id, hash, created_at FROM "drizzle"."__drizzle_migrations" ORDER BY created_at DESC LIMIT 1`);
36
- const lastDbMigration = dbMigrations[0];
37
- const transactionId = yield session.beginTransaction();
38
- try {
39
- try {
40
- for (var _d = true, migrations_1 = __asyncValues(migrations), migrations_1_1; migrations_1_1 = yield migrations_1.next(), _a = migrations_1_1.done, !_a;) {
41
- _c = migrations_1_1.value;
42
- _d = false;
43
- try {
44
- const migration = _c;
45
- if (!lastDbMigration
46
- || parseInt(lastDbMigration.created_at, 10) < migration.folderMillis) {
47
- for (const stmnt of migration.sql) {
48
- yield session.executeWithTransaction(sql_1.sql.raw(stmnt), transactionId);
49
- }
50
- yield session.executeWithTransaction((0, sql_1.sql) `INSERT INTO "drizzle"."__drizzle_migrations" ("hash", "created_at") VALUES(${migration.hash}, ${migration.folderMillis})`, transactionId);
51
- }
52
- }
53
- finally {
54
- _d = true;
55
- }
56
- }
57
- }
58
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
59
- finally {
60
- try {
61
- if (!_d && !_a && (_b = migrations_1.return)) yield _b.call(migrations_1);
62
- }
63
- finally { if (e_1) throw e_1.error; }
64
- }
65
- yield session.commitTransaction(transactionId);
66
- }
67
- catch (e) {
68
- yield session.rollbackTransaction(transactionId);
69
- throw e;
70
- }
17
+ yield db.dialect.migrate(migrations, db.session);
71
18
  });
72
19
  }
73
20
  exports.migrate = migrate;
@@ -1 +1 @@
1
- {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,yCAAgD;AAChD,+BAA4B;AAG5B,SAAsB,OAAO,CAAC,EAAwB,EAAE,MAAgC;;;QACvF,MAAM,UAAU,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;QAE9C,sCAAsC;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAEvB,MAAM,oBAAoB,GAAG,IAAA,SAAG,EAAA;;;;GAI9B,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,CAAC,IAAA,SAAG,EAAA,uCAAuC,CAAC,CAAC;QAClE,MAAM,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CACzC,IAAA,SAAG,EAAA,oGAAoG,CACvG,CAAC;QAEF,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAEvD,IAAI;;gBACH,KAA8B,eAAA,eAAA,cAAA,UAAU,CAAA,gBAAA;oBAAV,0BAAU;oBAAV,WAAU;;wBAA7B,MAAM,SAAS,KAAA,CAAA;wBACzB,IACC,CAAC,eAAe;+BACb,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,EACnE;4BACD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE;gCAClC,MAAM,OAAO,CAAC,sBAAsB,CAAC,SAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;6BACpE;4BACD,MAAM,OAAO,CAAC,sBAAsB,CACnC,IAAA,SAAG,EAAA,8EAA8E,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,GAAG,EAC7H,aAAa,CACb,CAAC;yBACF;;;;;iBACD;;;;;;;;;YAED,MAAM,OAAO,CAAC,iBAAiB,CAAC,aAAc,CAAC,CAAC;SAChD;QAAC,OAAO,CAAC,EAAE;YACX,MAAM,OAAO,CAAC,mBAAmB,CAAC,aAAc,CAAC,CAAC;YAClD,MAAM,CAAC,CAAC;SACR;;CACD;AA1CD,0BA0CC"}
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/migrator.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yCAAgD;AAGhD,SAAsB,OAAO,CAAC,EAAwB,EAAE,MAAgC;;QACvF,MAAM,UAAU,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;CAAA;AAHD,0BAGC"}
@@ -1,9 +1,8 @@
1
1
  import type { ExecuteStatementCommandOutput, RDSDataClient } from '@aws-sdk/client-rds-data';
2
2
  import type { Logger } from '../../logger';
3
- import type { PgDialect, PreparedQueryConfig, QueryResultHKT } from '../../pg-core';
4
- import { PgSession, PreparedQuery } from '../../pg-core';
3
+ import { type PgDialect, PgSession, PgTransaction, type PgTransactionConfig, PreparedQuery, type PreparedQueryConfig, type QueryResultHKT } from '../../pg-core';
5
4
  import type { SelectedFieldsOrdered } from '../../pg-core/query-builders/select.types';
6
- import type { Query, QueryTypingsValue, SQL } from '../../sql';
5
+ import { type Query, type QueryTypingsValue, type SQL } from '../../sql';
7
6
  export type AwsDataApiClient = RDSDataClient;
8
7
  export declare class AwsDataApiPreparedQuery<T extends PreparedQueryConfig> extends PreparedQuery<T> {
9
8
  private client;
@@ -12,10 +11,10 @@ export declare class AwsDataApiPreparedQuery<T extends PreparedQueryConfig> exte
12
11
  private options;
13
12
  private fields;
14
13
  private rawQuery;
15
- constructor(client: AwsDataApiClient, queryString: string, params: unknown[], typings: QueryTypingsValue[], options: AwsDataApiSessionOptions, fields: SelectedFieldsOrdered | undefined, name: string | undefined, transactionId: string | undefined);
14
+ constructor(client: AwsDataApiClient, queryString: string, params: unknown[], typings: QueryTypingsValue[], options: AwsDataApiSessionOptions, fields: SelectedFieldsOrdered | undefined,
15
+ /** @internal */
16
+ transactionId: string | undefined);
16
17
  execute(placeholderValues?: Record<string, unknown> | undefined): Promise<T['execute']>;
17
- all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']>;
18
- values(placeholderValues?: Record<string, unknown> | undefined): Promise<T['values']>;
19
18
  }
20
19
  export interface AwsDataApiSessionOptions {
21
20
  logger?: Logger;
@@ -23,18 +22,19 @@ export interface AwsDataApiSessionOptions {
23
22
  resourceArn: string;
24
23
  secretArn: string;
25
24
  }
26
- export declare class AwsDataApiSession extends PgSession {
27
- private client;
25
+ export declare class AwsDataApiSession extends PgSession<AwsDataApiPgQueryResultHKT> {
28
26
  private options;
29
- private rawQuery;
30
- constructor(client: AwsDataApiClient, dialect: PgDialect, options: AwsDataApiSessionOptions);
31
- prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined): PreparedQuery<T>;
32
- prepareQueryWithTransaction<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, name: string | undefined, transactionId: string | undefined): PreparedQuery<T>;
33
- executeWithTransaction<T>(query: SQL, transactionId: string | undefined): Promise<T>;
27
+ constructor(
28
+ /** @internal */
29
+ client: AwsDataApiClient, dialect: PgDialect, options: AwsDataApiSessionOptions,
30
+ /** @internal */
31
+ transactionId: string | undefined);
32
+ prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, transactionId?: string): PreparedQuery<T>;
34
33
  execute<T>(query: SQL): Promise<T>;
35
- beginTransaction(): Promise<string | undefined>;
36
- commitTransaction(transactionId: string): Promise<void>;
37
- rollbackTransaction(transactionId: string): Promise<void>;
34
+ transaction<T>(transaction: (tx: AwsDataApiTransaction) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
35
+ }
36
+ export declare class AwsDataApiTransaction extends PgTransaction<AwsDataApiPgQueryResultHKT> {
37
+ transaction<T>(transaction: (tx: AwsDataApiTransaction) => Promise<T>): Promise<T>;
38
38
  }
39
39
  export interface AwsDataApiPgQueryResultHKT extends QueryResultHKT {
40
40
  type: ExecuteStatementCommandOutput;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAO7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EACN,KAAK,SAAS,EACd,SAAS,EACT,aAAa,EACb,KAAK,mBAAmB,EACxB,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAoB,KAAK,KAAK,EAAE,KAAK,iBAAiB,EAAE,KAAK,GAAG,EAAO,MAAM,OAAO,CAAC;AAI5F,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,qBAAa,uBAAuB,CAAC,CAAC,SAAS,mBAAmB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAI1F,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IARf,OAAO,CAAC,QAAQ,CAA0B;gBAGjC,MAAM,EAAE,gBAAgB,EAChC,WAAW,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,qBAAqB,GAAG,SAAS;IACjD,gBAAgB;IACP,aAAa,EAAE,MAAM,GAAG,SAAS;IAarC,OAAO,CAAC,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAc,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAsBjG;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAQD,qBAAa,iBAAkB,SAAQ,SAAS,CAAC,0BAA0B,CAAC;IAQ1E,OAAO,CAAC,OAAO;;IAHf,gBAAgB;IACP,MAAM,EAAE,gBAAgB,EACjC,OAAO,EAAE,SAAS,EACV,OAAO,EAAE,wBAAwB;IACzC,gBAAgB;IACP,aAAa,EAAE,MAAM,GAAG,SAAS;IAU3C,YAAY,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EAC/D,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,aAAa,CAAC,EAAE,MAAM,GACpB,aAAa,CAAC,CAAC,CAAC;IAYV,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ5B,WAAW,CAAC,CAAC,EAC3B,WAAW,EAAE,CAAC,EAAE,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,EACtD,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,CAAC,CAAC;CAgBb;AAED,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,0BAA0B,CAAC;IAC1E,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAa3F;AAED,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IACjE,IAAI,EAAE,6BAA6B,CAAC;CACpC"}
@@ -9,20 +9,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AwsDataApiSession = exports.AwsDataApiPreparedQuery = void 0;
12
+ exports.AwsDataApiTransaction = exports.AwsDataApiSession = exports.AwsDataApiPreparedQuery = void 0;
13
13
  const client_rds_data_1 = require("@aws-sdk/client-rds-data");
14
14
  const pg_core_1 = require("../../pg-core");
15
15
  const sql_1 = require("../../sql");
16
16
  const utils_1 = require("../../utils");
17
17
  const common_1 = require("../common");
18
18
  class AwsDataApiPreparedQuery extends pg_core_1.PreparedQuery {
19
- constructor(client, queryString, params, typings, options, fields, name, transactionId) {
19
+ constructor(client, queryString, params, typings, options, fields,
20
+ /** @internal */
21
+ transactionId) {
20
22
  super();
21
23
  this.client = client;
22
24
  this.params = params;
23
25
  this.typings = typings;
24
26
  this.options = options;
25
27
  this.fields = fields;
28
+ this.transactionId = transactionId;
26
29
  this.rawQuery = new client_rds_data_1.ExecuteStatementCommand({
27
30
  sql: queryString,
28
31
  parameters: [],
@@ -49,55 +52,67 @@ class AwsDataApiPreparedQuery extends pg_core_1.PreparedQuery {
49
52
  });
50
53
  });
51
54
  }
52
- all(placeholderValues) {
53
- throw new Error('Method not implemented.');
54
- }
55
- values(placeholderValues) {
56
- throw new Error('Method not implemented.');
57
- }
58
55
  }
59
56
  exports.AwsDataApiPreparedQuery = AwsDataApiPreparedQuery;
60
57
  class AwsDataApiSession extends pg_core_1.PgSession {
61
- constructor(client, dialect, options) {
58
+ constructor(
59
+ /** @internal */
60
+ client, dialect, options,
61
+ /** @internal */
62
+ transactionId) {
62
63
  super(dialect);
63
64
  this.client = client;
64
65
  this.options = options;
66
+ this.transactionId = transactionId;
65
67
  this.rawQuery = {
66
68
  secretArn: options.secretArn,
67
69
  resourceArn: options.resourceArn,
68
70
  database: options.database,
69
71
  };
70
72
  }
71
- prepareQuery(query, fields, name) {
72
- var _a;
73
- return new AwsDataApiPreparedQuery(this.client, query.sql, query.params, (_a = query.typings) !== null && _a !== void 0 ? _a : [], this.options, fields, name, undefined);
74
- }
75
- prepareQueryWithTransaction(query, fields, name, transactionId) {
73
+ prepareQuery(query, fields, transactionId) {
76
74
  var _a;
77
- return new AwsDataApiPreparedQuery(this.client, query.sql, query.params, (_a = query.typings) !== null && _a !== void 0 ? _a : [], this.options, fields, name, transactionId);
78
- }
79
- executeWithTransaction(query, transactionId) {
80
- return this.prepareQueryWithTransaction(this.dialect.sqlToQuery(query), undefined, undefined, transactionId).execute();
75
+ return new AwsDataApiPreparedQuery(this.client, query.sql, query.params, (_a = query.typings) !== null && _a !== void 0 ? _a : [], this.options, fields, transactionId);
81
76
  }
82
77
  execute(query) {
83
- return this.prepareQuery(this.dialect.sqlToQuery(query), undefined, undefined).execute();
84
- }
85
- beginTransaction() {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const transactionRes = yield this.client.send(new client_rds_data_1.BeginTransactionCommand(this.rawQuery));
88
- return transactionRes.transactionId;
89
- });
78
+ return this.prepareQuery(this.dialect.sqlToQuery(query), undefined, this.transactionId).execute();
90
79
  }
91
- commitTransaction(transactionId) {
80
+ transaction(transaction, config) {
92
81
  return __awaiter(this, void 0, void 0, function* () {
93
- yield this.client.send(new client_rds_data_1.CommitTransactionCommand(Object.assign(Object.assign({}, this.rawQuery), { transactionId })));
94
- });
95
- }
96
- rollbackTransaction(transactionId) {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- yield this.client.send(new client_rds_data_1.RollbackTransactionCommand(Object.assign(Object.assign({}, this.rawQuery), { transactionId })));
82
+ const { transactionId } = yield this.client.send(new client_rds_data_1.BeginTransactionCommand(this.rawQuery));
83
+ const session = new AwsDataApiSession(this.client, this.dialect, this.options, transactionId);
84
+ const tx = new AwsDataApiTransaction(this.dialect, session);
85
+ if (config) {
86
+ yield tx.setTransaction(config);
87
+ }
88
+ try {
89
+ const result = yield transaction(tx);
90
+ yield this.client.send(new client_rds_data_1.CommitTransactionCommand(Object.assign(Object.assign({}, this.rawQuery), { transactionId })));
91
+ return result;
92
+ }
93
+ catch (e) {
94
+ yield this.client.send(new client_rds_data_1.RollbackTransactionCommand(Object.assign(Object.assign({}, this.rawQuery), { transactionId })));
95
+ throw e;
96
+ }
99
97
  });
100
98
  }
101
99
  }
102
100
  exports.AwsDataApiSession = AwsDataApiSession;
101
+ class AwsDataApiTransaction extends pg_core_1.PgTransaction {
102
+ transaction(transaction) {
103
+ const savepointName = `sp${this.nestedIndex + 1}`;
104
+ const tx = new AwsDataApiTransaction(this.dialect, this.session, this.nestedIndex + 1);
105
+ this.session.execute((0, sql_1.sql) `savepoint ${savepointName}`);
106
+ try {
107
+ const result = transaction(tx);
108
+ this.session.execute((0, sql_1.sql) `release savepoint ${savepointName}`);
109
+ return result;
110
+ }
111
+ catch (e) {
112
+ this.session.execute((0, sql_1.sql) `rollback to savepoint ${savepointName}`);
113
+ throw e;
114
+ }
115
+ }
116
+ }
117
+ exports.AwsDataApiTransaction = AwsDataApiTransaction;
103
118
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/aws-data-api/pg/session.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import type { Database, RunResult, Statement } from 'better-sqlite3';
2
2
  import type { Logger } from '../logger';
3
- import type { Query } from '../sql';
3
+ import { type Query } from '../sql';
4
+ import { SQLiteTransaction } from '../sqlite-core';
4
5
  import type { SQLiteSyncDialect } from '../sqlite-core/dialect';
5
6
  import type { SelectedFieldsOrdered } from '../sqlite-core/query-builders/select.types';
6
- import type { PreparedQueryConfig as PreparedQueryConfigBase, Transaction } from '../sqlite-core/session';
7
+ import type { PreparedQueryConfig as PreparedQueryConfigBase, SQLiteTransactionConfig } from '../sqlite-core/session';
7
8
  import { PreparedQuery as PreparedQueryBase, SQLiteSession } from '../sqlite-core/session';
8
9
  export interface BetterSQLiteSessionOptions {
9
10
  logger?: Logger;
@@ -13,9 +14,11 @@ export declare class BetterSQLiteSession extends SQLiteSession<'sync', RunResult
13
14
  private client;
14
15
  private logger;
15
16
  constructor(client: Database, dialect: SQLiteSyncDialect, options?: BetterSQLiteSessionOptions);
16
- exec(query: string): void;
17
17
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields: SelectedFieldsOrdered | undefined): PreparedQuery<T>;
18
- transaction(): Transaction<'sync', RunResult>;
18
+ transaction<T>(transaction: (tx: BetterSQLiteTransaction) => T, config?: SQLiteTransactionConfig): T;
19
+ }
20
+ export declare class BetterSQLiteTransaction extends SQLiteTransaction<'sync', RunResult> {
21
+ transaction<T>(transaction: (tx: BetterSQLiteTransaction) => T): T;
19
22
  }
20
23
  export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
21
24
  type: 'sync';
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG1F,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC;AAE9E,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;IAIvE,OAAO,CAAC,MAAM;IAHf,OAAO,CAAC,MAAM,CAAS;gBAGd,MAAM,EAAE,QAAQ,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,0BAA+B;IAMzC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB,YAAY,CAAC,CAAC,SAAS,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,EACtD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACvC,aAAa,CAAC,CAAC,CAAC;IAKV,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;CAGtD;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,iBAAiB,CACxG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CAAE,CACnF;IAEC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;gBAJN,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,qBAAqB,GAAG,SAAS;IAKlD,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAM3D,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAW1D,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAkB1D,MAAM,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CAKhE"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAoB,KAAK,KAAK,EAAO,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrH,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG1F,MAAM,WAAW,0BAA0B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC;AAE9E,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;IAIvE,OAAO,CAAC,MAAM;IAHf,OAAO,CAAC,MAAM,CAAS;gBAGd,MAAM,EAAE,QAAQ,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,0BAA+B;IAMzC,YAAY,CAAC,CAAC,SAAS,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,EACtD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACvC,aAAa,CAAC,CAAC,CAAC;IAKV,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,uBAAuB,KAAK,CAAC,EAAE,MAAM,GAAE,uBAA4B,GAAG,CAAC;CAKjH;AAED,qBAAa,uBAAwB,SAAQ,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;IACvE,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,uBAAuB,KAAK,CAAC,GAAG,CAAC;CAa3E;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,iBAAiB,CACxG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CAAE,CACnF;IAEC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;gBAJN,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,qBAAqB,GAAG,SAAS;IAKlD,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAM3D,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAW1D,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAkB1D,MAAM,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CAKhE"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PreparedQuery = exports.BetterSQLiteSession = void 0;
3
+ exports.PreparedQuery = exports.BetterSQLiteTransaction = exports.BetterSQLiteSession = void 0;
4
4
  const logger_1 = require("../logger");
5
5
  const sql_1 = require("../sql");
6
+ const sqlite_core_1 = require("../sqlite-core");
6
7
  const session_1 = require("../sqlite-core/session");
7
8
  const utils_1 = require("../utils");
8
9
  class BetterSQLiteSession extends session_1.SQLiteSession {
@@ -12,18 +13,35 @@ class BetterSQLiteSession extends session_1.SQLiteSession {
12
13
  this.client = client;
13
14
  this.logger = (_a = options.logger) !== null && _a !== void 0 ? _a : new logger_1.NoopLogger();
14
15
  }
15
- exec(query) {
16
- this.client.exec(query);
17
- }
18
16
  prepareQuery(query, fields) {
19
17
  const stmt = this.client.prepare(query.sql);
20
18
  return new PreparedQuery(stmt, query.sql, query.params, this.logger, fields);
21
19
  }
22
- transaction() {
23
- throw new Error('Method not implemented.');
20
+ transaction(transaction, config = {}) {
21
+ var _a;
22
+ const tx = new BetterSQLiteTransaction(this.dialect, this);
23
+ const nativeTx = this.client.transaction(transaction);
24
+ return nativeTx[(_a = config.behavior) !== null && _a !== void 0 ? _a : 'deferred'](tx);
24
25
  }
25
26
  }
26
27
  exports.BetterSQLiteSession = BetterSQLiteSession;
28
+ class BetterSQLiteTransaction extends sqlite_core_1.SQLiteTransaction {
29
+ transaction(transaction) {
30
+ const savepointName = `sp${this.nestedIndex}`;
31
+ const tx = new BetterSQLiteTransaction(this.dialect, this.session, this.nestedIndex + 1);
32
+ this.session.run(sql_1.sql.raw(`savepoint ${savepointName}`));
33
+ try {
34
+ const result = transaction(tx);
35
+ this.session.run(sql_1.sql.raw(`release savepoint ${savepointName}`));
36
+ return result;
37
+ }
38
+ catch (err) {
39
+ this.session.run(sql_1.sql.raw(`rollback to savepoint ${savepointName}`));
40
+ throw err;
41
+ }
42
+ }
43
+ }
44
+ exports.BetterSQLiteTransaction = BetterSQLiteTransaction;
27
45
  class PreparedQuery extends session_1.PreparedQuery {
28
46
  constructor(stmt, queryString, params, logger, fields) {
29
47
  super();
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/better-sqlite3/session.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  /// <reference types="bun-types" />
2
2
  import type { Database, Statement as BunStatement } from 'bun:sqlite';
3
3
  import type { Logger } from '../logger';
4
- import type { Query } from '../sql';
4
+ import { type Query } from '../sql';
5
+ import { SQLiteTransaction } from '../sqlite-core';
5
6
  import type { SQLiteSyncDialect } from '../sqlite-core/dialect';
6
7
  import type { SelectedFieldsOrdered } from '../sqlite-core/query-builders/select.types';
7
- import type { PreparedQueryConfig as PreparedQueryConfigBase, Transaction } from '../sqlite-core/session';
8
+ import type { PreparedQueryConfig as PreparedQueryConfigBase, SQLiteTransactionConfig } from '../sqlite-core/session';
8
9
  import { PreparedQuery as PreparedQueryBase, SQLiteSession } from '../sqlite-core/session';
9
10
  export interface SQLiteBunSessionOptions {
10
11
  logger?: Logger;
@@ -17,7 +18,10 @@ export declare class SQLiteBunSession extends SQLiteSession<'sync', void> {
17
18
  constructor(client: Database, dialect: SQLiteSyncDialect, options?: SQLiteBunSessionOptions);
18
19
  exec(query: string): void;
19
20
  prepareQuery<T extends Omit<PreparedQueryConfig, 'run'>>(query: Query, fields?: SelectedFieldsOrdered): PreparedQuery<T>;
20
- transaction(): Transaction<'sync', void>;
21
+ transaction<T>(transaction: (tx: SQLiteBunTransaction) => T, config?: SQLiteTransactionConfig): T;
22
+ }
23
+ export declare class SQLiteBunTransaction extends SQLiteTransaction<'sync', void> {
24
+ transaction<T>(transaction: (tx: SQLiteBunTransaction) => T): T;
21
25
  }
22
26
  export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
23
27
  type: 'sync';
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG1F,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC;AAC9E,KAAK,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEnC,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;IAI/D,OAAO,CAAC,MAAM;IAHf,OAAO,CAAC,MAAM,CAAS;gBAGd,MAAM,EAAE,QAAQ,EACxB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,uBAA4B;IAMtC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB,YAAY,CAAC,CAAC,SAAS,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,EACtD,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,qBAAqB,GAC5B,aAAa,CAAC,CAAC,CAAC;IAKV,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;CAGjD;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,iBAAiB,CACxG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CAAE,CAC9E;IAEC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;gBAJN,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,qBAAqB,GAAG,SAAS;IAKlD,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMtD,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAW1D,GAAG,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAiB1D,MAAM,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;CAKhE"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  /// <reference types="bun-types" />
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.PreparedQuery = exports.SQLiteBunSession = void 0;
4
+ exports.PreparedQuery = exports.SQLiteBunTransaction = exports.SQLiteBunSession = void 0;
5
5
  const logger_1 = require("../logger");
6
6
  const sql_1 = require("../sql");
7
+ const sqlite_core_1 = require("../sqlite-core");
7
8
  const session_1 = require("../sqlite-core/session");
8
9
  const utils_1 = require("../utils");
9
10
  class SQLiteBunSession extends session_1.SQLiteSession {
@@ -20,11 +21,35 @@ class SQLiteBunSession extends session_1.SQLiteSession {
20
21
  const stmt = this.client.prepare(query.sql);
21
22
  return new PreparedQuery(stmt, query.sql, query.params, this.logger, fields);
22
23
  }
23
- transaction() {
24
- throw new Error('Method not implemented.');
24
+ transaction(transaction, config = {}) {
25
+ var _a;
26
+ const tx = new SQLiteBunTransaction(this.dialect, this);
27
+ let result;
28
+ const nativeTx = this.client.transaction(() => {
29
+ result = transaction(tx);
30
+ });
31
+ nativeTx[(_a = config.behavior) !== null && _a !== void 0 ? _a : 'deferred']();
32
+ return result;
25
33
  }
26
34
  }
27
35
  exports.SQLiteBunSession = SQLiteBunSession;
36
+ class SQLiteBunTransaction extends sqlite_core_1.SQLiteTransaction {
37
+ transaction(transaction) {
38
+ const savepointName = `sp${this.nestedIndex}`;
39
+ const tx = new SQLiteBunTransaction(this.dialect, this.session, this.nestedIndex + 1);
40
+ this.session.run(sql_1.sql.raw(`savepoint ${savepointName}`));
41
+ try {
42
+ const result = transaction(tx);
43
+ this.session.run(sql_1.sql.raw(`release savepoint ${savepointName}`));
44
+ return result;
45
+ }
46
+ catch (err) {
47
+ this.session.run(sql_1.sql.raw(`rollback to savepoint ${savepointName}`));
48
+ throw err;
49
+ }
50
+ }
51
+ }
52
+ exports.SQLiteBunTransaction = SQLiteBunTransaction;
28
53
  class PreparedQuery extends session_1.PreparedQuery {
29
54
  constructor(stmt, queryString, params, logger, fields) {
30
55
  super();
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":";AAAA,mCAAmC;;;AAInC,qCAAsC;AAEtC,+BAAyC;AAIzC,mDAA0F;AAC1F,mCAAuC;AASvC,MAAa,gBAAiB,SAAQ,uBAA2B;IAGhE,YACS,MAAgB,EACxB,OAA0B,EAC1B,UAAmC,EAAE;;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJP,WAAM,GAAN,MAAM,CAAU;QAKxB,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI,mBAAU,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,KAAa;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,YAAY,CACX,KAAY,EACZ,MAA8B;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAEQ,WAAW;QACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;CACD;AA3BD,4CA2BC;AAED,MAAa,aAAmE,SAAQ,uBAEvF;IACA,YACS,IAAe,EACf,WAAmB,EACnB,MAAiB,EACjB,MAAc,EACd,MAAyC;QAEjD,KAAK,EAAE,CAAC;QANA,SAAI,GAAJ,IAAI,CAAW;QACf,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAmC;IAGlD,CAAC;IAED,GAAG,CAAC,iBAA2C;QAC9C,MAAM,MAAM,GAAG,IAAA,sBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,iBAA2C;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,MAAM,EAAE;YACX,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;SACxG;QAED,MAAM,MAAM,GAAG,IAAA,sBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,iBAA2C;QAC9C,MAAM,MAAM,GAAG,IAAA,sBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,EAAE;YACX,OAAO,SAAS,CAAC;SACjB;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO,KAAK,CAAC;SACb;QAED,OAAO,IAAA,oBAAY,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,iBAA2C;QACjD,MAAM,MAAM,GAAG,IAAA,sBAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IACpC,CAAC;CACD;AApDD,sCAoDC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/bun-sqlite/session.ts"],"names":[],"mappings":"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"}
package/d1/session.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
2
  import type { Logger } from '../logger';
3
- import type { Query } from '../sql';
3
+ import { type Query } from '../sql';
4
+ import { SQLiteTransaction } from '../sqlite-core';
4
5
  import type { SQLiteAsyncDialect } from '../sqlite-core/dialect';
5
6
  import type { SelectedFieldsOrdered } from '../sqlite-core/query-builders/select.types';
6
- import { type PreparedQueryConfig as PreparedQueryConfigBase, Transaction } from '../sqlite-core/session';
7
+ import { type PreparedQueryConfig as PreparedQueryConfigBase, type SQLiteTransactionConfig } from '../sqlite-core/session';
7
8
  import { PreparedQuery as PreparedQueryBase, SQLiteSession } from '../sqlite-core/session';
8
9
  export interface SQLiteD1SessionOptions {
9
10
  logger?: Logger;
@@ -14,9 +15,10 @@ export declare class SQLiteD1Session extends SQLiteSession<'async', D1Result> {
14
15
  private logger;
15
16
  constructor(client: D1Database, dialect: SQLiteAsyncDialect, options?: SQLiteD1SessionOptions);
16
17
  prepareQuery(query: Query, fields?: SelectedFieldsOrdered): PreparedQuery;
17
- transaction(transaction: (tx: D1Transaction) => void | Promise<void>): Promise<void>;
18
+ transaction<T>(transaction: (tx: D1Transaction) => T | Promise<T>, config?: SQLiteTransactionConfig): Promise<T>;
18
19
  }
19
- export declare class D1Transaction extends Transaction<'async', D1Result> {
20
+ export declare class D1Transaction extends SQLiteTransaction<'async', D1Result> {
21
+ transaction<T>(transaction: (tx: D1Transaction) => Promise<T>): Promise<T>;
20
22
  }
21
23
  export declare class PreparedQuery<T extends PreparedQueryConfig = PreparedQueryConfig> extends PreparedQueryBase<{
22
24
  type: 'async';