drizzle-orm 0.34.0-178591 → 0.34.0-605ef48

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 (260) hide show
  1. package/aws-data-api/pg/driver.cjs +3 -1
  2. package/aws-data-api/pg/driver.cjs.map +1 -1
  3. package/aws-data-api/pg/driver.d.cts +4 -2
  4. package/aws-data-api/pg/driver.d.ts +4 -2
  5. package/aws-data-api/pg/driver.js +3 -1
  6. package/aws-data-api/pg/driver.js.map +1 -1
  7. package/aws-data-api/pg/migrator.cjs.map +1 -1
  8. package/aws-data-api/pg/migrator.d.cts +1 -1
  9. package/aws-data-api/pg/migrator.d.ts +1 -1
  10. package/aws-data-api/pg/migrator.js.map +1 -1
  11. package/aws-data-api/pg/session.cjs +3 -0
  12. package/aws-data-api/pg/session.cjs.map +1 -1
  13. package/aws-data-api/pg/session.js +3 -0
  14. package/aws-data-api/pg/session.js.map +1 -1
  15. package/better-sqlite3/driver.cjs +3 -1
  16. package/better-sqlite3/driver.cjs.map +1 -1
  17. package/better-sqlite3/driver.d.cts +3 -1
  18. package/better-sqlite3/driver.d.ts +3 -1
  19. package/better-sqlite3/driver.js +3 -1
  20. package/better-sqlite3/driver.js.map +1 -1
  21. package/better-sqlite3/migrator.cjs.map +1 -1
  22. package/better-sqlite3/migrator.d.cts +1 -1
  23. package/better-sqlite3/migrator.d.ts +1 -1
  24. package/better-sqlite3/migrator.js.map +1 -1
  25. package/bun-sqlite/driver.cjs +3 -1
  26. package/bun-sqlite/driver.cjs.map +1 -1
  27. package/bun-sqlite/driver.d.cts +3 -1
  28. package/bun-sqlite/driver.d.ts +3 -1
  29. package/bun-sqlite/driver.js +3 -1
  30. package/bun-sqlite/driver.js.map +1 -1
  31. package/bun-sqlite/migrator.cjs.map +1 -1
  32. package/bun-sqlite/migrator.d.cts +1 -1
  33. package/bun-sqlite/migrator.d.ts +1 -1
  34. package/bun-sqlite/migrator.js.map +1 -1
  35. package/d1/driver.cjs +3 -1
  36. package/d1/driver.cjs.map +1 -1
  37. package/d1/driver.d.cts +6 -2
  38. package/d1/driver.d.ts +6 -2
  39. package/d1/driver.js +3 -1
  40. package/d1/driver.js.map +1 -1
  41. package/d1/migrator.cjs +1 -1
  42. package/d1/migrator.cjs.map +1 -1
  43. package/d1/migrator.d.cts +1 -1
  44. package/d1/migrator.d.ts +1 -1
  45. package/d1/migrator.js +1 -1
  46. package/d1/migrator.js.map +1 -1
  47. package/expo-sqlite/driver.cjs +3 -1
  48. package/expo-sqlite/driver.cjs.map +1 -1
  49. package/expo-sqlite/driver.d.cts +3 -1
  50. package/expo-sqlite/driver.d.ts +3 -1
  51. package/expo-sqlite/driver.js +3 -1
  52. package/expo-sqlite/driver.js.map +1 -1
  53. package/libsql/driver.cjs +3 -1
  54. package/libsql/driver.cjs.map +1 -1
  55. package/libsql/driver.d.cts +3 -1
  56. package/libsql/driver.d.ts +3 -1
  57. package/libsql/driver.js +3 -1
  58. package/libsql/driver.js.map +1 -1
  59. package/libsql/migrator.cjs +1 -1
  60. package/libsql/migrator.cjs.map +1 -1
  61. package/libsql/migrator.d.cts +1 -1
  62. package/libsql/migrator.d.ts +1 -1
  63. package/libsql/migrator.js +1 -1
  64. package/libsql/migrator.js.map +1 -1
  65. package/migrator.cjs +1 -12
  66. package/migrator.cjs.map +1 -1
  67. package/migrator.d.cts +1 -1
  68. package/migrator.d.ts +1 -1
  69. package/migrator.js +1 -12
  70. package/migrator.js.map +1 -1
  71. package/monodriver.cjs +140 -53
  72. package/monodriver.cjs.map +1 -1
  73. package/monodriver.d.cts +85 -41
  74. package/monodriver.d.ts +85 -41
  75. package/monodriver.js +140 -53
  76. package/monodriver.js.map +1 -1
  77. package/monomigrator.cjs.map +1 -1
  78. package/monomigrator.d.cts +1 -1
  79. package/monomigrator.d.ts +1 -1
  80. package/monomigrator.js.map +1 -1
  81. package/mysql-core/db.cjs +2 -1
  82. package/mysql-core/db.cjs.map +1 -1
  83. package/mysql-core/db.d.cts +2 -2
  84. package/mysql-core/db.d.ts +2 -2
  85. package/mysql-core/db.js +2 -1
  86. package/mysql-core/db.js.map +1 -1
  87. package/mysql2/driver.cjs +5 -5
  88. package/mysql2/driver.cjs.map +1 -1
  89. package/mysql2/driver.d.cts +3 -1
  90. package/mysql2/driver.d.ts +3 -1
  91. package/mysql2/driver.js +5 -5
  92. package/mysql2/driver.js.map +1 -1
  93. package/mysql2/migrator.cjs +1 -4
  94. package/mysql2/migrator.cjs.map +1 -1
  95. package/mysql2/migrator.d.cts +1 -1
  96. package/mysql2/migrator.d.ts +1 -1
  97. package/mysql2/migrator.js +1 -4
  98. package/mysql2/migrator.js.map +1 -1
  99. package/neon-http/driver.cjs +3 -1
  100. package/neon-http/driver.cjs.map +1 -1
  101. package/neon-http/driver.d.cts +3 -1
  102. package/neon-http/driver.d.ts +3 -1
  103. package/neon-http/driver.js +3 -1
  104. package/neon-http/driver.js.map +1 -1
  105. package/neon-http/migrator.cjs +2 -2
  106. package/neon-http/migrator.cjs.map +1 -1
  107. package/neon-http/migrator.d.cts +1 -1
  108. package/neon-http/migrator.d.ts +1 -1
  109. package/neon-http/migrator.js +2 -2
  110. package/neon-http/migrator.js.map +1 -1
  111. package/neon-serverless/driver.cjs +3 -1
  112. package/neon-serverless/driver.cjs.map +1 -1
  113. package/neon-serverless/driver.d.cts +3 -1
  114. package/neon-serverless/driver.d.ts +3 -1
  115. package/neon-serverless/driver.js +3 -1
  116. package/neon-serverless/driver.js.map +1 -1
  117. package/neon-serverless/migrator.cjs.map +1 -1
  118. package/neon-serverless/migrator.d.cts +1 -1
  119. package/neon-serverless/migrator.d.ts +1 -1
  120. package/neon-serverless/migrator.js.map +1 -1
  121. package/node-postgres/driver.cjs +3 -1
  122. package/node-postgres/driver.cjs.map +1 -1
  123. package/node-postgres/driver.d.cts +3 -1
  124. package/node-postgres/driver.d.ts +3 -1
  125. package/node-postgres/driver.js +3 -1
  126. package/node-postgres/driver.js.map +1 -1
  127. package/node-postgres/migrator.cjs.map +1 -1
  128. package/node-postgres/migrator.d.cts +1 -1
  129. package/node-postgres/migrator.d.ts +1 -1
  130. package/node-postgres/migrator.js.map +1 -1
  131. package/node-postgres/session.cjs +15 -5
  132. package/node-postgres/session.cjs.map +1 -1
  133. package/node-postgres/session.d.cts +3 -2
  134. package/node-postgres/session.d.ts +3 -2
  135. package/node-postgres/session.js +15 -5
  136. package/node-postgres/session.js.map +1 -1
  137. package/op-sqlite/driver.cjs +3 -1
  138. package/op-sqlite/driver.cjs.map +1 -1
  139. package/op-sqlite/driver.d.cts +3 -1
  140. package/op-sqlite/driver.d.ts +3 -1
  141. package/op-sqlite/driver.js +3 -1
  142. package/op-sqlite/driver.js.map +1 -1
  143. package/package.json +50 -49
  144. package/pg-core/db.cjs +4 -3
  145. package/pg-core/db.cjs.map +1 -1
  146. package/pg-core/db.d.cts +2 -2
  147. package/pg-core/db.d.ts +2 -2
  148. package/pg-core/db.js +4 -3
  149. package/pg-core/db.js.map +1 -1
  150. package/pg-core/dialect.cjs +45 -2
  151. package/pg-core/dialect.cjs.map +1 -1
  152. package/pg-core/dialect.d.cts +2 -1
  153. package/pg-core/dialect.d.ts +2 -1
  154. package/pg-core/dialect.js +45 -2
  155. package/pg-core/dialect.js.map +1 -1
  156. package/pg-core/query-builders/select.cjs +5 -1
  157. package/pg-core/query-builders/select.cjs.map +1 -1
  158. package/pg-core/query-builders/select.d.cts +1 -0
  159. package/pg-core/query-builders/select.d.ts +1 -0
  160. package/pg-core/query-builders/select.js +5 -1
  161. package/pg-core/query-builders/select.js.map +1 -1
  162. package/pg-core/query-builders/select.types.cjs.map +1 -1
  163. package/pg-core/query-builders/select.types.d.cts +1 -0
  164. package/pg-core/query-builders/select.types.d.ts +1 -0
  165. package/pg-core/session.cjs.map +1 -1
  166. package/pg-core/session.d.cts +1 -1
  167. package/pg-core/session.d.ts +1 -1
  168. package/pg-core/session.js.map +1 -1
  169. package/pg-proxy/migrator.cjs.map +1 -1
  170. package/pg-proxy/migrator.d.cts +1 -1
  171. package/pg-proxy/migrator.d.ts +1 -1
  172. package/pg-proxy/migrator.js.map +1 -1
  173. package/pglite/driver.cjs +3 -1
  174. package/pglite/driver.cjs.map +1 -1
  175. package/pglite/driver.d.cts +3 -1
  176. package/pglite/driver.d.ts +3 -1
  177. package/pglite/driver.js +3 -1
  178. package/pglite/driver.js.map +1 -1
  179. package/pglite/migrator.cjs.map +1 -1
  180. package/pglite/migrator.d.cts +1 -1
  181. package/pglite/migrator.d.ts +1 -1
  182. package/pglite/migrator.js.map +1 -1
  183. package/planetscale-serverless/driver.cjs +3 -1
  184. package/planetscale-serverless/driver.cjs.map +1 -1
  185. package/planetscale-serverless/driver.d.cts +3 -1
  186. package/planetscale-serverless/driver.d.ts +3 -1
  187. package/planetscale-serverless/driver.js +3 -1
  188. package/planetscale-serverless/driver.js.map +1 -1
  189. package/planetscale-serverless/migrator.cjs +1 -4
  190. package/planetscale-serverless/migrator.cjs.map +1 -1
  191. package/planetscale-serverless/migrator.d.cts +1 -1
  192. package/planetscale-serverless/migrator.d.ts +1 -1
  193. package/planetscale-serverless/migrator.js +1 -4
  194. package/planetscale-serverless/migrator.js.map +1 -1
  195. package/postgres-js/driver.cjs +3 -1
  196. package/postgres-js/driver.cjs.map +1 -1
  197. package/postgres-js/driver.d.cts +3 -1
  198. package/postgres-js/driver.d.ts +3 -1
  199. package/postgres-js/driver.js +3 -1
  200. package/postgres-js/driver.js.map +1 -1
  201. package/postgres-js/migrator.cjs.map +1 -1
  202. package/postgres-js/migrator.d.cts +1 -1
  203. package/postgres-js/migrator.d.ts +1 -1
  204. package/postgres-js/migrator.js.map +1 -1
  205. package/postgres-js/session.cjs +7 -5
  206. package/postgres-js/session.cjs.map +1 -1
  207. package/postgres-js/session.d.cts +3 -2
  208. package/postgres-js/session.d.ts +3 -2
  209. package/postgres-js/session.js +7 -5
  210. package/postgres-js/session.js.map +1 -1
  211. package/sql-js/migrator.cjs.map +1 -1
  212. package/sql-js/migrator.d.cts +1 -1
  213. package/sql-js/migrator.d.ts +1 -1
  214. package/sql-js/migrator.js.map +1 -1
  215. package/sqlite-core/db.cjs +17 -16
  216. package/sqlite-core/db.cjs.map +1 -1
  217. package/sqlite-core/db.d.cts +5 -5
  218. package/sqlite-core/db.d.ts +5 -5
  219. package/sqlite-core/db.js +17 -16
  220. package/sqlite-core/db.js.map +1 -1
  221. package/sqlite-proxy/migrator.cjs.map +1 -1
  222. package/sqlite-proxy/migrator.d.cts +1 -1
  223. package/sqlite-proxy/migrator.d.ts +1 -1
  224. package/sqlite-proxy/migrator.js.map +1 -1
  225. package/tidb-serverless/driver.cjs +3 -1
  226. package/tidb-serverless/driver.cjs.map +1 -1
  227. package/tidb-serverless/driver.d.cts +3 -1
  228. package/tidb-serverless/driver.d.ts +3 -1
  229. package/tidb-serverless/driver.js +3 -1
  230. package/tidb-serverless/driver.js.map +1 -1
  231. package/utils.cjs.map +1 -1
  232. package/utils.d.cts +1 -0
  233. package/utils.d.ts +1 -0
  234. package/utils.js.map +1 -1
  235. package/vercel-postgres/driver.cjs +3 -1
  236. package/vercel-postgres/driver.cjs.map +1 -1
  237. package/vercel-postgres/driver.d.cts +3 -1
  238. package/vercel-postgres/driver.d.ts +3 -1
  239. package/vercel-postgres/driver.js +3 -1
  240. package/vercel-postgres/driver.js.map +1 -1
  241. package/vercel-postgres/migrator.cjs.map +1 -1
  242. package/vercel-postgres/migrator.d.cts +1 -1
  243. package/vercel-postgres/migrator.d.ts +1 -1
  244. package/vercel-postgres/migrator.js.map +1 -1
  245. package/version.cjs +1 -1
  246. package/version.d.cts +1 -1
  247. package/version.d.ts +1 -1
  248. package/version.js +1 -1
  249. package/xata-http/driver.cjs +3 -1
  250. package/xata-http/driver.cjs.map +1 -1
  251. package/xata-http/driver.d.cts +3 -1
  252. package/xata-http/driver.d.ts +3 -1
  253. package/xata-http/driver.js +3 -1
  254. package/xata-http/driver.js.map +1 -1
  255. package/xata-http/migrator.cjs +1 -1
  256. package/xata-http/migrator.cjs.map +1 -1
  257. package/xata-http/migrator.d.cts +1 -1
  258. package/xata-http/migrator.d.ts +1 -1
  259. package/xata-http/migrator.js +1 -1
  260. package/xata-http/migrator.js.map +1 -1
package/monodriver.cjs CHANGED
@@ -39,132 +39,219 @@ const importError = (libName) => {
39
39
  function assertUnreachable(_) {
40
40
  throw new Error("Didn't expect to get here");
41
41
  }
42
- async function drizzle(client, params) {
43
- const { connection, ws, ...drizzleConfig } = params;
42
+ async function drizzle(client, ...params) {
44
43
  switch (client) {
45
44
  case "node-postgres": {
46
- const { Pool } = await import("pg").catch(() => importError("pg"));
45
+ const defpg = await import("pg").catch(() => importError("pg"));
47
46
  const { drizzle: drizzle2 } = await import("./node-postgres");
48
- const instance = new Pool(connection);
49
- const db = drizzle2(instance, drizzleConfig);
50
- db.$client = instance;
47
+ if (typeof params[0] === "object") {
48
+ const { connection, ...drizzleConfig } = params[0];
49
+ const instance2 = typeof connection === "string" ? new defpg.default.Pool({
50
+ connectionString: connection
51
+ }) : new defpg.default.Pool(connection);
52
+ const db2 = drizzle2(instance2, drizzleConfig);
53
+ return db2;
54
+ }
55
+ const instance = typeof params[0] === "string" ? new defpg.default.Pool({
56
+ connectionString: params[0]
57
+ }) : new defpg.default.Pool(params[0]);
58
+ const db = drizzle2(instance);
51
59
  return db;
52
60
  }
53
61
  case "aws-data-api-pg": {
62
+ const { connection, ...drizzleConfig } = params[0];
63
+ const { resourceArn, database, secretArn, ...rdsConfig } = connection;
54
64
  const { RDSDataClient } = await import("@aws-sdk/client-rds-data").catch(
55
65
  () => importError("@aws-sdk/client-rds-data")
56
66
  );
57
67
  const { drizzle: drizzle2 } = await import("./aws-data-api/pg");
58
- const instance = new RDSDataClient(connection);
59
- const db = drizzle2(instance, drizzleConfig);
60
- db.$client = instance;
68
+ const instance = new RDSDataClient(rdsConfig);
69
+ const db = drizzle2(instance, { resourceArn, database, secretArn, ...drizzleConfig });
61
70
  return db;
62
71
  }
63
72
  case "better-sqlite3": {
64
73
  const { default: Client } = await import("better-sqlite3").catch(() => importError("better-sqlite3"));
65
74
  const { drizzle: drizzle2 } = await import("./better-sqlite3");
66
- if (typeof connection === "object") {
67
- const { filename, options } = connection;
68
- const instance2 = new Client(filename, options);
75
+ if (typeof params[0] === "object") {
76
+ const { connection, ...drizzleConfig } = params[0];
77
+ if (typeof connection === "object") {
78
+ const { source, ...options } = connection;
79
+ const instance3 = new Client(source, options);
80
+ const db3 = drizzle2(instance3, drizzleConfig);
81
+ return db3;
82
+ }
83
+ const instance2 = new Client(connection);
69
84
  const db2 = drizzle2(instance2, drizzleConfig);
70
- db2.$client = instance2;
71
85
  return db2;
72
86
  }
73
- const instance = new Client(connection);
74
- const db = drizzle2(instance, drizzleConfig);
75
- db.$client = instance;
87
+ const instance = new Client(params[0]);
88
+ const db = drizzle2(instance);
76
89
  return db;
77
90
  }
78
91
  case "bun:sqlite": {
79
- const { Database: Client } = await import("bun:sqlite").catch(() => importError("bun:sqlite"));
92
+ const { Database: Client } = await import("bun:sqlite").catch(() => {
93
+ throw new Error(`Please use bun to use 'bun:sqlite' for Drizzle ORM to connect to database`);
94
+ });
80
95
  const { drizzle: drizzle2 } = await import("./bun-sqlite");
81
- if (typeof connection === "object") {
82
- const { filename, options } = connection;
83
- const instance2 = new Client(filename, options);
96
+ if (typeof params[0] === "object") {
97
+ const { connection, ...drizzleConfig } = params[0];
98
+ if (typeof connection === "object") {
99
+ const { source, ...opts } = connection;
100
+ const options = Object.values(opts).filter((v) => v !== void 0).length ? opts : void 0;
101
+ const instance3 = new Client(source, options);
102
+ const db3 = drizzle2(instance3, drizzleConfig);
103
+ return db3;
104
+ }
105
+ const instance2 = new Client(connection);
84
106
  const db2 = drizzle2(instance2, drizzleConfig);
85
- db2.$client = instance2;
86
107
  return db2;
87
108
  }
88
- const instance = new Client(connection);
89
- const db = drizzle2(instance, drizzleConfig);
90
- db.$client = instance;
109
+ const instance = new Client(params[0]);
110
+ const db = drizzle2(instance);
91
111
  return db;
92
112
  }
93
113
  case "d1": {
114
+ const { connection, ...drizzleConfig } = params[0];
94
115
  const { drizzle: drizzle2 } = await import("./d1");
95
116
  const db = drizzle2(connection, drizzleConfig);
96
- db.$client = connection;
97
117
  return db;
98
118
  }
99
- case "libsql": {
119
+ case "libsql":
120
+ case "turso": {
100
121
  const { createClient } = await import("@libsql/client").catch(() => importError("@libsql/client"));
101
122
  const { drizzle: drizzle2 } = await import("./libsql");
102
- const instance = createClient(connection);
123
+ if (typeof params[0] === "string") {
124
+ const instance2 = createClient({
125
+ url: params[0]
126
+ });
127
+ const db2 = drizzle2(instance2);
128
+ return db2;
129
+ }
130
+ const { connection, ...drizzleConfig } = params[0];
131
+ const instance = typeof connection === "string" ? createClient({ url: connection }) : createClient(connection);
103
132
  const db = drizzle2(instance, drizzleConfig);
104
- db.$client = instance;
105
133
  return db;
106
134
  }
107
135
  case "mysql2": {
108
- const { createPool } = await import("mysql2/promise").catch(() => importError("mysql2/promise"));
109
- const instance = createPool(connection);
136
+ const { createPool } = await import("mysql2/promise").catch(() => importError("mysql2"));
110
137
  const { drizzle: drizzle2 } = await import("./mysql2");
111
- const db = drizzle2(instance, drizzleConfig);
112
- db.$client = instance;
138
+ if (typeof params[0] === "object") {
139
+ const { connection, ...drizzleConfig } = params[0];
140
+ const instance2 = createPool(connection);
141
+ const db2 = drizzle2(instance2, drizzleConfig);
142
+ return db2;
143
+ }
144
+ const connectionString = params[0];
145
+ const instance = createPool(connectionString);
146
+ const db = drizzle2(instance);
113
147
  return db;
114
148
  }
115
149
  case "neon-http": {
116
150
  const { neon } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
117
- const { connectionString, options } = connection;
118
151
  const { drizzle: drizzle2 } = await import("./neon-http");
119
- const instance = neon(connectionString, options);
120
- const db = drizzle2(instance, drizzleConfig);
121
- db.$client = instance;
152
+ if (typeof params[0] === "object") {
153
+ const { connection, ...drizzleConfig } = params[0];
154
+ if (typeof connection === "object") {
155
+ const { connectionString, ...options } = connection;
156
+ const instance3 = neon(connectionString, options);
157
+ const db3 = drizzle2(instance3, drizzleConfig);
158
+ return db3;
159
+ }
160
+ const instance2 = neon(connection);
161
+ const db2 = drizzle2(instance2, drizzleConfig);
162
+ return db2;
163
+ }
164
+ const instance = neon(params[0]);
165
+ const db = drizzle2(instance);
122
166
  return db;
123
167
  }
124
- case "neon-serverless": {
168
+ case "neon-websocket": {
125
169
  const { Pool, neonConfig } = await import("@neondatabase/serverless").catch(
126
170
  () => importError("@neondatabase/serverless")
127
171
  );
128
172
  const { drizzle: drizzle2 } = await import("./neon-serverless");
129
- const instance = new Pool(connection);
130
- if (ws) {
131
- neonConfig.webSocketConstructor = ws;
173
+ if (typeof params[0] === "string") {
174
+ const instance2 = new Pool({
175
+ connectionString: params[0]
176
+ });
177
+ const db2 = drizzle2(instance2);
178
+ return db2;
132
179
  }
133
- const db = drizzle2(instance, drizzleConfig);
134
- db.$client = instance;
180
+ if (typeof params[0] === "object") {
181
+ const { connection, ws, ...drizzleConfig } = params[0];
182
+ if (ws) {
183
+ neonConfig.webSocketConstructor = ws;
184
+ }
185
+ const instance2 = typeof connection === "string" ? new Pool({
186
+ connectionString: connection
187
+ }) : new Pool(connection);
188
+ const db2 = drizzle2(instance2, drizzleConfig);
189
+ return db2;
190
+ }
191
+ const instance = new Pool();
192
+ const db = drizzle2(instance);
135
193
  return db;
136
194
  }
137
195
  case "planetscale": {
138
196
  const { Client } = await import("@planetscale/database").catch(() => importError("@planetscale/database"));
139
197
  const { drizzle: drizzle2 } = await import("./planetscale-serverless");
140
- const instance = new Client(
141
- connection
142
- );
143
- const db = drizzle2(instance, drizzleConfig);
144
- db.$client = instance;
198
+ if (typeof params[0] === "object") {
199
+ const { connection, ...drizzleConfig } = params[0];
200
+ const instance2 = typeof connection === "string" ? new Client({
201
+ url: connection
202
+ }) : new Client(
203
+ connection
204
+ );
205
+ const db2 = drizzle2(instance2, drizzleConfig);
206
+ return db2;
207
+ }
208
+ const instance = new Client({
209
+ url: params[0]
210
+ });
211
+ const db = drizzle2(instance);
145
212
  return db;
146
213
  }
147
214
  case "postgres-js": {
148
215
  const { default: client2 } = await import("postgres").catch(() => importError("postgres"));
149
216
  const { drizzle: drizzle2 } = await import("./postgres-js");
150
- const instance = client2(connection);
151
- const db = drizzle2(instance, drizzleConfig);
152
- db.$client = instance;
217
+ if (typeof params[0] === "object") {
218
+ const { connection, ...drizzleConfig } = params[0];
219
+ if (typeof connection === "object" && connection.url !== void 0) {
220
+ const { url, ...config } = connection;
221
+ const instance3 = client2(url, config);
222
+ const db3 = drizzle2(instance3, drizzleConfig);
223
+ return db3;
224
+ }
225
+ const instance2 = client2(connection);
226
+ const db2 = drizzle2(instance2, drizzleConfig);
227
+ return db2;
228
+ }
229
+ const instance = client2(params[0]);
230
+ const db = drizzle2(instance);
153
231
  return db;
154
232
  }
155
233
  case "tidb-serverless": {
156
234
  const { connect } = await import("@tidbcloud/serverless").catch(() => importError("@tidbcloud/serverless"));
157
235
  const { drizzle: drizzle2 } = await import("./tidb-serverless");
158
- const instance = connect(connection);
236
+ if (typeof params[0] === "string") {
237
+ const instance2 = connect({
238
+ url: params[0]
239
+ });
240
+ const db2 = drizzle2(instance2);
241
+ return db2;
242
+ }
243
+ const { connection, ...drizzleConfig } = params[0];
244
+ const instance = typeof connection === "string" ? connect({
245
+ url: connection
246
+ }) : connect(connection);
159
247
  const db = drizzle2(instance, drizzleConfig);
160
- db.$client = instance;
161
248
  return db;
162
249
  }
163
250
  case "vercel-postgres": {
251
+ const drizzleConfig = params[0];
164
252
  const { sql } = await import("@vercel/postgres").catch(() => importError("@vercel/postgres"));
165
253
  const { drizzle: drizzle2 } = await import("./vercel-postgres");
166
254
  const db = drizzle2(sql, drizzleConfig);
167
- db.$client = sql;
168
255
  return db;
169
256
  }
170
257
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { RDSDataClient, RDSDataClientConfig, RDSDataClientConfig as RDSConfig } from '@aws-sdk/client-rds-data';\nimport type { Client as LibsqlClient, Config as LibsqlConfig } from '@libsql/client';\nimport type {\n\tHTTPTransactionOptions as NeonHttpConfig,\n\tNeonQueryFunction,\n\tPool as NeonServerlessPool,\n\tPoolConfig as NeonServerlessConfig,\n} from '@neondatabase/serverless';\nimport type { Client as PlanetscaleClient, Config as PlanetscaleConfig } from '@planetscale/database';\nimport type { Config as TiDBServerlessConfig, Connection as TiDBConnection } from '@tidbcloud/serverless';\nimport type { QueryResult, QueryResultRow, VercelPool } from '@vercel/postgres';\nimport type { Database as BetterSQLite3Database, Options as BetterSQLite3Options } from 'better-sqlite3';\nimport type { Database as BunDatabase } from 'bun:sqlite';\nimport type { Pool as Mysql2Pool, PoolOptions as Mysql2Config } from 'mysql2';\nimport type { Pool as NodePgPool, PoolConfig as NodePGPoolConfig } from 'pg';\nimport type {\n\tOptions as PostgresJSOptions,\n\tPostgresType as PostgresJSPostgresType,\n\tSql as PostgresJsClient,\n} from 'postgres';\nimport type { AwsDataApiPgDatabase, DrizzleAwsDataApiPgConfig } from './aws-data-api/pg/index.ts';\nimport type { BetterSQLite3Database as DrizzleBetterSQLite3Database } from './better-sqlite3/index.ts';\nimport type { BunSQLiteDatabase } from './bun-sqlite/index.ts';\nimport type { DrizzleD1Database } from './d1/index.ts';\nimport type { LibSQLDatabase } from './libsql/index.ts';\nimport type { MySql2Database, MySql2DrizzleConfig } from './mysql2/index.ts';\nimport type { NeonHttpDatabase } from './neon-http/index.ts';\nimport type { NeonDatabase } from './neon-serverless/index.ts';\nimport type { NodePgDatabase } from './node-postgres/index.ts';\nimport type { PlanetScaleDatabase } from './planetscale-serverless/index.ts';\nimport type { PostgresJsDatabase } from './postgres-js/index.ts';\nimport type { TiDBServerlessDatabase } from './tidb-serverless/index.ts';\nimport type { DrizzleConfig } from './utils.ts';\nimport type { VercelPgDatabase } from './vercel-postgres/index.ts';\n\ntype BunSqliteDatabaseOptions =\n\t| number\n\t| {\n\t\t/**\n\t\t * Open the database as read-only (no write operations, no create).\n\t\t *\n\t\t * Equivalent to {@link constants.SQLITE_OPEN_READONLY}\n\t\t */\n\t\treadonly?: boolean;\n\t\t/**\n\t\t * Allow creating a new database\n\t\t *\n\t\t * Equivalent to {@link constants.SQLITE_OPEN_CREATE}\n\t\t */\n\t\tcreate?: boolean;\n\t\t/**\n\t\t * Open the database as read-write\n\t\t *\n\t\t * Equivalent to {@link constants.SQLITE_OPEN_READWRITE}\n\t\t */\n\t\treadwrite?: boolean;\n\t};\n\ntype BunSqliteDatabaseConfig =\n\t| {\n\t\tfilename?: ':memory:' | (string & {});\n\t\toptions?: BunSqliteDatabaseOptions;\n\t}\n\t| ':memory:'\n\t| (string & {})\n\t| undefined;\n\ntype BetterSQLite3DatabaseConfig =\n\t| {\n\t\tfilename?:\n\t\t\t| ':memory:'\n\t\t\t| (string & {})\n\t\t\t| Buffer;\n\t\toptions?: BetterSQLite3Options;\n\t}\n\t| ':memory:'\n\t| (string & {})\n\t| undefined;\n\ntype MonodriverNeonHttpConfig = {\n\tconnectionString: string;\n\toptions?: NeonHttpConfig<boolean, boolean>;\n};\n\ntype VercelPrimitive = string | number | boolean | undefined | null;\n\ntype DatabaseClient =\n\t| 'node-postgres'\n\t| 'postgres-js'\n\t| 'neon-serverless'\n\t| 'neon-http'\n\t| 'vercel-postgres'\n\t| 'aws-data-api-pg'\n\t| 'planetscale'\n\t| 'mysql2'\n\t| 'tidb-serverless'\n\t| 'libsql'\n\t| 'd1'\n\t| 'bun:sqlite'\n\t| 'better-sqlite3';\n\ntype ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {\n\t'node-postgres': NodePgDatabase<TSchema>;\n\t'postgres-js': PostgresJsDatabase<TSchema>;\n\t'neon-serverless': NeonDatabase<TSchema>;\n\t'neon-http': NeonHttpDatabase<TSchema>;\n\t'vercel-postgres': VercelPgDatabase<TSchema>;\n\t'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;\n\tplanetscale: PlanetScaleDatabase<TSchema>;\n\tmysql2: MySql2Database<TSchema>;\n\t'tidb-serverless': TiDBServerlessDatabase<TSchema>;\n\tlibsql: LibSQLDatabase<TSchema>;\n\td1: DrizzleD1Database<TSchema>;\n\t'bun:sqlite': BunSQLiteDatabase<TSchema>;\n\t'better-sqlite3': DrizzleBetterSQLite3Database<TSchema>;\n};\n\ntype ClientInstanceMap = {\n\t'node-postgres': NodePgPool;\n\t'postgres-js': PostgresJsClient;\n\t'neon-serverless': NeonServerlessPool;\n\t'neon-http': NeonQueryFunction<boolean, boolean>;\n\t'vercel-postgres':\n\t\t& VercelPool\n\t\t& (<O extends QueryResultRow>(\n\t\t\tstrings: TemplateStringsArray,\n\t\t\t...values: VercelPrimitive[]\n\t\t) => Promise<QueryResult<O>>);\n\t'aws-data-api-pg': RDSDataClient;\n\tplanetscale: PlanetscaleClient;\n\tmysql2: Mysql2Pool;\n\t'tidb-serverless': TiDBConnection;\n\tlibsql: LibsqlClient;\n\td1: D1Database;\n\t'bun:sqlite': BunDatabase;\n\t'better-sqlite3': BetterSQLite3Database;\n};\n\ntype InitializerParams = {\n\t'node-postgres': {\n\t\tconnection: NodePGPoolConfig;\n\t};\n\t'postgres-js': {\n\t\tconnection: string | PostgresJSOptions<Record<string, PostgresJSPostgresType>>;\n\t};\n\t'neon-serverless': {\n\t\tconnection: NeonServerlessConfig;\n\t};\n\t'neon-http': {\n\t\tconnection: MonodriverNeonHttpConfig;\n\t};\n\t'vercel-postgres': {\n\t\tconnection: VercelPool;\n\t};\n\t'aws-data-api-pg': {\n\t\tconnection?: RDSConfig;\n\t};\n\tplanetscale: {\n\t\tconnection: PlanetscaleConfig;\n\t};\n\tmysql2: {\n\t\tconnection: Mysql2Config | string;\n\t};\n\t'tidb-serverless': {\n\t\tconnection: TiDBServerlessConfig;\n\t};\n\tlibsql: {\n\t\tconnection: LibsqlConfig;\n\t};\n\td1: {\n\t\tconnection: D1Database;\n\t};\n\t'bun:sqlite': {\n\t\tconnection?: BunSqliteDatabaseConfig;\n\t};\n\t'better-sqlite3': {\n\t\tconnection?: BetterSQLite3DatabaseConfig;\n\t};\n};\n\ntype DetermineClient<\n\tTClient extends DatabaseClient,\n\tTSchema extends Record<string, unknown>,\n> =\n\t& ClientDrizzleInstanceMap<\n\t\tTSchema\n\t>[TClient]\n\t& {\n\t\t$client: ClientInstanceMap[TClient];\n\t};\n\nconst importError = (libName: string) => {\n\tthrow new Error(\n\t\t`Please install '${libName}' for Drizzle ORM to connect to database`,\n\t);\n};\n\nfunction assertUnreachable(_: never | undefined): never {\n\tthrow new Error(\"Didn't expect to get here\");\n}\n\nexport async function drizzle<\n\tTClient extends DatabaseClient,\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(\n\tclient: TClient,\n\tparams:\n\t\t& InitializerParams[TClient]\n\t\t& (TClient extends 'mysql2' ? MySql2DrizzleConfig<TSchema>\n\t\t\t: TClient extends 'aws-data-api-pg' ? DrizzleAwsDataApiPgConfig<TSchema>\n\t\t\t: TClient extends 'neon-serverless' ? DrizzleConfig<TSchema> & {\n\t\t\t\t\tws?: any;\n\t\t\t\t}\n\t\t\t: DrizzleConfig<TSchema>),\n): Promise<DetermineClient<TClient, TSchema>> {\n\tconst { connection, ws, ...drizzleConfig } = params as typeof params & {\n\t\tws?: any;\n\t};\n\n\tswitch (client) {\n\t\tcase 'node-postgres': {\n\t\t\tconst { Pool } = await import('pg').catch(() => importError('pg'));\n\t\t\tconst { drizzle } = await import('./node-postgres');\n\t\t\tconst instance = new Pool(connection as NodePGPoolConfig);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'aws-data-api-pg': {\n\t\t\tconst { RDSDataClient } = await import('@aws-sdk/client-rds-data').catch(() =>\n\t\t\t\timportError('@aws-sdk/client-rds-data')\n\t\t\t);\n\t\t\tconst { drizzle } = await import('./aws-data-api/pg');\n\t\t\tconst instance = new RDSDataClient(connection as RDSDataClientConfig);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig as any as DrizzleAwsDataApiPgConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'better-sqlite3': {\n\t\t\tconst { default: Client } = await import('better-sqlite3').catch(() => importError('better-sqlite3'));\n\t\t\tconst { drizzle } = await import('./better-sqlite3');\n\n\t\t\tif (typeof connection === 'object') {\n\t\t\t\tconst { filename, options } = connection as Exclude<BetterSQLite3DatabaseConfig, string | undefined>;\n\n\t\t\t\tconst instance = new Client(filename, options);\n\n\t\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\t\tdb.$client = instance;\n\n\t\t\t\treturn db;\n\t\t\t}\n\n\t\t\tconst instance = new Client(connection);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'bun:sqlite': {\n\t\t\tconst { Database: Client } = await import('bun:sqlite').catch(() => importError('bun:sqlite'));\n\t\t\tconst { drizzle } = await import('./bun-sqlite');\n\n\t\t\tif (typeof connection === 'object') {\n\t\t\t\tconst { filename, options } = connection as Exclude<BunSqliteDatabaseConfig, string | undefined>;\n\n\t\t\t\tconst instance = new Client(filename, options);\n\n\t\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\t\tdb.$client = instance;\n\n\t\t\t\treturn db;\n\t\t\t}\n\n\t\t\tconst instance = new Client(connection);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'd1': {\n\t\t\tconst { drizzle } = await import('./d1');\n\n\t\t\tconst db = drizzle(connection as D1Database, drizzleConfig) as any;\n\t\t\tdb.$client = connection;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'libsql': {\n\t\t\tconst { createClient } = await import('@libsql/client').catch(() => importError('@libsql/client'));\n\t\t\tconst { drizzle } = await import('./libsql');\n\t\t\tconst instance = createClient(connection as LibsqlConfig);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'mysql2': {\n\t\t\tconst { createPool } = await import('mysql2/promise').catch(() => importError('mysql2/promise'));\n\t\t\tconst instance = createPool(connection as Mysql2Config);\n\t\t\tconst { drizzle } = await import('./mysql2');\n\n\t\t\tconst db = drizzle(instance, drizzleConfig as MySql2DrizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'neon-http': {\n\t\t\tconst { neon } = await import('@neondatabase/serverless').catch(() => importError('@neondatabase/serverless'));\n\t\t\tconst { connectionString, options } = connection as MonodriverNeonHttpConfig;\n\t\t\tconst { drizzle } = await import('./neon-http');\n\t\t\tconst instance = neon(connectionString, options);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'neon-serverless': {\n\t\t\tconst { Pool, neonConfig } = await import('@neondatabase/serverless').catch(() =>\n\t\t\t\timportError('@neondatabase/serverless')\n\t\t\t);\n\t\t\tconst { drizzle } = await import('./neon-serverless');\n\t\t\tconst instance = new Pool(connection as NeonServerlessConfig);\n\n\t\t\tif (ws) {\n\t\t\t\tneonConfig.webSocketConstructor = ws;\n\t\t\t}\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'planetscale': {\n\t\t\tconst { Client } = await import('@planetscale/database').catch(() => importError('@planetscale/database'));\n\t\t\tconst { drizzle } = await import('./planetscale-serverless');\n\t\t\tconst instance = new Client(\n\t\t\t\tconnection as PlanetscaleConfig,\n\t\t\t);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'postgres-js': {\n\t\t\tconst { default: client } = await import('postgres').catch(() => importError('postgres'));\n\t\t\tconst { drizzle } = await import('./postgres-js');\n\t\t\tconst instance = client(connection as PostgresJSOptions<Record<string, PostgresJSPostgresType>>);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'tidb-serverless': {\n\t\t\tconst { connect } = await import('@tidbcloud/serverless').catch(() => importError('@tidbcloud/serverless'));\n\t\t\tconst { drizzle } = await import('./tidb-serverless');\n\t\t\tconst instance = connect(connection as TiDBServerlessConfig);\n\n\t\t\tconst db = drizzle(instance, drizzleConfig) as any;\n\t\t\tdb.$client = instance;\n\n\t\t\treturn db;\n\t\t}\n\t\tcase 'vercel-postgres': {\n\t\t\tconst { sql } = await import('@vercel/postgres').catch(() => importError('@vercel/postgres'));\n\t\t\tconst { drizzle } = await import('./vercel-postgres');\n\n\t\t\tconst db = drizzle(sql, drizzleConfig) as any;\n\t\t\tdb.$client = sql;\n\n\t\t\treturn db;\n\t\t}\n\t}\n\n\tassertUnreachable(client);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgMA,MAAM,cAAc,CAAC,YAAoB;AACxC,QAAM,IAAI;AAAA,IACT,mBAAmB,OAAO;AAAA,EAC3B;AACD;AAEA,SAAS,kBAAkB,GAA6B;AACvD,QAAM,IAAI,MAAM,2BAA2B;AAC5C;AAEA,eAAsB,QAIrB,QACA,QAQ6C;AAC7C,QAAM,EAAE,YAAY,IAAI,GAAG,cAAc,IAAI;AAI7C,UAAQ,QAAQ;AAAA,IACf,KAAK,iBAAiB;AACrB,YAAM,EAAE,KAAK,IAAI,MAAM,OAAO,IAAI,EAAE,MAAM,MAAM,YAAY,IAAI,CAAC;AACjE,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,iBAAiB;AAClD,YAAM,WAAW,IAAI,KAAK,UAA8B;AAExD,YAAM,KAAKA,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,mBAAmB;AACvB,YAAM,EAAE,cAAc,IAAI,MAAM,OAAO,0BAA0B,EAAE;AAAA,QAAM,MACxE,YAAY,0BAA0B;AAAA,MACvC;AACA,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AACpD,YAAM,WAAW,IAAI,cAAc,UAAiC;AAEpE,YAAM,KAAKA,SAAQ,UAAU,aAAiD;AAC9E,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,kBAAkB;AACtB,YAAM,EAAE,SAAS,OAAO,IAAI,MAAM,OAAO,gBAAgB,EAAE,MAAM,MAAM,YAAY,gBAAgB,CAAC;AACpG,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,kBAAkB;AAEnD,UAAI,OAAO,eAAe,UAAU;AACnC,cAAM,EAAE,UAAU,QAAQ,IAAI;AAE9B,cAAMC,YAAW,IAAI,OAAO,UAAU,OAAO;AAE7C,cAAMC,MAAKF,SAAQC,WAAU,aAAa;AAC1C,QAAAC,IAAG,UAAUD;AAEb,eAAOC;AAAA,MACR;AAEA,YAAM,WAAW,IAAI,OAAO,UAAU;AAEtC,YAAM,KAAKF,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,cAAc;AAClB,YAAM,EAAE,UAAU,OAAO,IAAI,MAAM,OAAO,YAAY,EAAE,MAAM,MAAM,YAAY,YAAY,CAAC;AAC7F,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,cAAc;AAE/C,UAAI,OAAO,eAAe,UAAU;AACnC,cAAM,EAAE,UAAU,QAAQ,IAAI;AAE9B,cAAMC,YAAW,IAAI,OAAO,UAAU,OAAO;AAE7C,cAAMC,MAAKF,SAAQC,WAAU,aAAa;AAC1C,QAAAC,IAAG,UAAUD;AAEb,eAAOC;AAAA,MACR;AAEA,YAAM,WAAW,IAAI,OAAO,UAAU;AAEtC,YAAM,KAAKF,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,MAAM;AACV,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,MAAM;AAEvC,YAAM,KAAKA,SAAQ,YAA0B,aAAa;AAC1D,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,UAAU;AACd,YAAM,EAAE,aAAa,IAAI,MAAM,OAAO,gBAAgB,EAAE,MAAM,MAAM,YAAY,gBAAgB,CAAC;AACjG,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,UAAU;AAC3C,YAAM,WAAW,aAAa,UAA0B;AAExD,YAAM,KAAKA,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,UAAU;AACd,YAAM,EAAE,WAAW,IAAI,MAAM,OAAO,gBAAgB,EAAE,MAAM,MAAM,YAAY,gBAAgB,CAAC;AAC/F,YAAM,WAAW,WAAW,UAA0B;AACtD,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,UAAU;AAE3C,YAAM,KAAKA,SAAQ,UAAU,aAAoC;AACjE,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,aAAa;AACjB,YAAM,EAAE,KAAK,IAAI,MAAM,OAAO,0BAA0B,EAAE,MAAM,MAAM,YAAY,0BAA0B,CAAC;AAC7G,YAAM,EAAE,kBAAkB,QAAQ,IAAI;AACtC,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,aAAa;AAC9C,YAAM,WAAW,KAAK,kBAAkB,OAAO;AAE/C,YAAM,KAAKA,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,mBAAmB;AACvB,YAAM,EAAE,MAAM,WAAW,IAAI,MAAM,OAAO,0BAA0B,EAAE;AAAA,QAAM,MAC3E,YAAY,0BAA0B;AAAA,MACvC;AACA,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AACpD,YAAM,WAAW,IAAI,KAAK,UAAkC;AAE5D,UAAI,IAAI;AACP,mBAAW,uBAAuB;AAAA,MACnC;AAEA,YAAM,KAAKA,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,eAAe;AACnB,YAAM,EAAE,OAAO,IAAI,MAAM,OAAO,uBAAuB,EAAE,MAAM,MAAM,YAAY,uBAAuB,CAAC;AACzG,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,0BAA0B;AAC3D,YAAM,WAAW,IAAI;AAAA,QACpB;AAAA,MACD;AAEA,YAAM,KAAKA,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,eAAe;AACnB,YAAM,EAAE,SAASG,QAAO,IAAI,MAAM,OAAO,UAAU,EAAE,MAAM,MAAM,YAAY,UAAU,CAAC;AACxF,YAAM,EAAE,SAAAH,SAAQ,IAAI,MAAM,OAAO,eAAe;AAChD,YAAM,WAAWG,QAAO,UAAuE;AAE/F,YAAM,KAAKH,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,mBAAmB;AACvB,YAAM,EAAE,QAAQ,IAAI,MAAM,OAAO,uBAAuB,EAAE,MAAM,MAAM,YAAY,uBAAuB,CAAC;AAC1G,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AACpD,YAAM,WAAW,QAAQ,UAAkC;AAE3D,YAAM,KAAKA,SAAQ,UAAU,aAAa;AAC1C,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,IACA,KAAK,mBAAmB;AACvB,YAAM,EAAE,IAAI,IAAI,MAAM,OAAO,kBAAkB,EAAE,MAAM,MAAM,YAAY,kBAAkB,CAAC;AAC5F,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AAEpD,YAAM,KAAKA,SAAQ,KAAK,aAAa;AACrC,SAAG,UAAU;AAEb,aAAO;AAAA,IACR;AAAA,EACD;AAEA,oBAAkB,MAAM;AACzB;","names":["drizzle","instance","db","client"]}
1
+ {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { RDSDataClient, RDSDataClientConfig as RDSConfig } from '@aws-sdk/client-rds-data';\nimport type { Client as LibsqlClient, Config as LibsqlConfig } from '@libsql/client';\nimport type {\n\tHTTPTransactionOptions as NeonHttpConfig,\n\tNeonQueryFunction,\n\tPool as NeonServerlessPool,\n\tPoolConfig as NeonServerlessConfig,\n\tQueryResult,\n\tQueryResultRow,\n} from '@neondatabase/serverless';\nimport type { Client as PlanetscaleClient, Config as PlanetscaleConfig } from '@planetscale/database';\nimport type { Config as TiDBServerlessConfig, Connection as TiDBConnection } from '@tidbcloud/serverless';\nimport type { VercelPool } from '@vercel/postgres';\nimport type { Database as BetterSQLite3Database, Options as BetterSQLite3Options } from 'better-sqlite3';\nimport type { Database as BunDatabase } from 'bun:sqlite';\nimport type { Pool as Mysql2Pool, PoolOptions as Mysql2Config } from 'mysql2';\nimport type { Pool as NodePgPool, PoolConfig as NodePgPoolConfig } from 'pg';\nimport type {\n\tOptions as PostgresJSOptions,\n\tPostgresType as PostgresJSPostgresType,\n\tSql as PostgresJsClient,\n} from 'postgres';\nimport type { AwsDataApiPgDatabase, DrizzleAwsDataApiPgConfig } from './aws-data-api/pg/index.ts';\nimport type { BetterSQLite3Database as DrizzleBetterSQLite3Database } from './better-sqlite3/index.ts';\nimport type { BunSQLiteDatabase } from './bun-sqlite/index.ts';\nimport type { AnyD1Database, DrizzleD1Database } from './d1/index.ts';\nimport type { LibSQLDatabase } from './libsql/index.ts';\nimport type { MySql2Database, MySql2DrizzleConfig } from './mysql2/index.ts';\nimport type { NeonHttpDatabase } from './neon-http/index.ts';\nimport type { NeonDatabase } from './neon-serverless/index.ts';\nimport type { NodePgDatabase } from './node-postgres/driver.ts';\nimport type { PlanetScaleDatabase } from './planetscale-serverless/index.ts';\nimport type { PostgresJsDatabase } from './postgres-js/index.ts';\nimport type { TiDBServerlessDatabase } from './tidb-serverless/index.ts';\nimport type { DrizzleConfig, IfNotImported } from './utils.ts';\nimport type { VercelPgDatabase } from './vercel-postgres/index.ts';\n\ntype BunSqliteDatabaseOptions = {\n\t/**\n\t * Open the database as read-only (no write operations, no create).\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READONLY}\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Allow creating a new database\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_CREATE}\n\t */\n\tcreate?: boolean;\n\t/**\n\t * Open the database as read-write\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READWRITE}\n\t */\n\treadwrite?: boolean;\n};\n\ntype BunSqliteDatabaseConfig =\n\t| ({\n\t\tsource?: string;\n\t} & BunSqliteDatabaseOptions)\n\t| string\n\t| undefined;\n\ntype BetterSQLite3DatabaseConfig =\n\t| ({\n\t\tsource?:\n\t\t\t| string\n\t\t\t| Buffer;\n\t} & BetterSQLite3Options)\n\t| string\n\t| undefined;\n\ntype MonodriverNeonHttpConfig =\n\t| ({\n\t\tconnectionString: string;\n\t} & NeonHttpConfig<boolean, boolean>)\n\t| string;\n\ntype AwsDataApiConnectionConfig = RDSConfig & Omit<DrizzleAwsDataApiPgConfig, keyof DrizzleConfig>;\n\ntype DatabaseClient =\n\t| 'node-postgres'\n\t| 'postgres-js'\n\t| 'neon-websocket'\n\t| 'neon-http'\n\t| 'vercel-postgres'\n\t| 'aws-data-api-pg'\n\t| 'planetscale'\n\t| 'mysql2'\n\t| 'tidb-serverless'\n\t| 'libsql'\n\t| 'turso'\n\t| 'd1'\n\t| 'bun:sqlite'\n\t| 'better-sqlite3';\n\ntype ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {\n\t'node-postgres': NodePgDatabase<TSchema>;\n\t'postgres-js': PostgresJsDatabase<TSchema>;\n\t'neon-websocket': NeonDatabase<TSchema>;\n\t'neon-http': NeonHttpDatabase<TSchema>;\n\t'vercel-postgres': VercelPgDatabase<TSchema>;\n\t'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;\n\tplanetscale: PlanetScaleDatabase<TSchema>;\n\tmysql2: MySql2Database<TSchema>;\n\t'tidb-serverless': TiDBServerlessDatabase<TSchema>;\n\tlibsql: LibSQLDatabase<TSchema>;\n\tturso: LibSQLDatabase<TSchema>;\n\td1: DrizzleD1Database<TSchema>;\n\t'bun:sqlite': BunSQLiteDatabase<TSchema>;\n\t'better-sqlite3': DrizzleBetterSQLite3Database<TSchema>;\n};\n\ntype Primitive = string | number | boolean | undefined | null;\n\ntype ClientInstanceMap = {\n\t'node-postgres': NodePgPool;\n\t'postgres-js': PostgresJsClient;\n\t'neon-websocket': NeonServerlessPool;\n\t'neon-http': NeonQueryFunction<boolean, boolean>;\n\t'vercel-postgres':\n\t\t& VercelPool\n\t\t& (<O extends QueryResultRow>(strings: TemplateStringsArray, ...values: Primitive[]) => Promise<QueryResult<O>>);\n\t'aws-data-api-pg': RDSDataClient;\n\tplanetscale: PlanetscaleClient;\n\tmysql2: Mysql2Pool;\n\t'tidb-serverless': TiDBConnection;\n\tlibsql: LibsqlClient;\n\tturso: LibsqlClient;\n\td1: AnyD1Database;\n\t'bun:sqlite': BunDatabase;\n\t'better-sqlite3': BetterSQLite3Database;\n};\n\ntype ClientTypeImportErrorMap = {\n\t'node-postgres': 'pg`, `@types/pg';\n\t'postgres-js': 'postgres';\n\t'neon-websocket': '@neondatabase/serverless';\n\t'neon-http': '@neondatabase/serverless';\n\t'vercel-postgres': '@vercel/postgres';\n\t'aws-data-api-pg': '@aws-sdk/client-rds-data';\n\tplanetscale: '@planetscale/database';\n\tmysql2: 'mysql2';\n\t'tidb-serverless': '@tidbcloud/serverless';\n\tlibsql: '@libsql/client';\n\tturso: '@libsql/client';\n\td1: '@cloudflare/workers-types` or `@miniflare/d1';\n\t'bun:sqlite': 'bun-types';\n\t'better-sqlite3': 'better-sqlite3';\n};\n\ntype ImportTypeError<TClient extends DatabaseClient> =\n\t`Please install \\`${ClientTypeImportErrorMap[TClient]}\\` for Drizzle ORM to connect to database`;\n\ntype InitializerParams = {\n\t'node-postgres': {\n\t\tconnection: string | NodePgPoolConfig;\n\t};\n\t'postgres-js': {\n\t\tconnection: string | ({ url?: string } & PostgresJSOptions<Record<string, PostgresJSPostgresType>>);\n\t};\n\t'neon-websocket': {\n\t\tconnection: string | NeonServerlessConfig;\n\t};\n\t'neon-http': {\n\t\tconnection: MonodriverNeonHttpConfig;\n\t};\n\t'vercel-postgres': {};\n\t'aws-data-api-pg': {\n\t\tconnection: AwsDataApiConnectionConfig;\n\t};\n\tplanetscale: {\n\t\tconnection: PlanetscaleConfig | string;\n\t};\n\tmysql2: {\n\t\tconnection: Mysql2Config | string;\n\t};\n\t'tidb-serverless': {\n\t\tconnection: TiDBServerlessConfig | string;\n\t};\n\tlibsql: {\n\t\tconnection: LibsqlConfig | string;\n\t};\n\tturso: {\n\t\tconnection: LibsqlConfig | string;\n\t};\n\td1: {\n\t\tconnection: AnyD1Database;\n\t};\n\t'bun:sqlite': {\n\t\tconnection?: BunSqliteDatabaseConfig;\n\t};\n\t'better-sqlite3': {\n\t\tconnection?: BetterSQLite3DatabaseConfig;\n\t};\n};\n\ntype DetermineClient<\n\tTClient extends DatabaseClient,\n\tTSchema extends Record<string, unknown>,\n> =\n\t& ClientDrizzleInstanceMap<\n\t\tTSchema\n\t>[TClient]\n\t& {\n\t\t$client: ClientInstanceMap[TClient];\n\t};\n\nconst importError = (libName: string) => {\n\tthrow new Error(\n\t\t`Please install '${libName}' for Drizzle ORM to connect to database`,\n\t);\n};\n\nfunction assertUnreachable(_: never | undefined): never {\n\tthrow new Error(\"Didn't expect to get here\");\n}\n\nexport async function drizzle<\n\tTClient extends DatabaseClient,\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(\n\tclient: TClient,\n\t...params: TClient extends 'bun:sqlite' | 'better-sqlite3' ? (\n\t\t\t[] | [\n\t\t\t\t(\n\t\t\t\t\t& IfNotImported<\n\t\t\t\t\t\tClientInstanceMap[TClient],\n\t\t\t\t\t\t{ connection: ImportTypeError<TClient> },\n\t\t\t\t\t\tInitializerParams[TClient]\n\t\t\t\t\t>\n\t\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t),\n\t\t\t] | [string]\n\t\t)\n\t\t: TClient extends 'vercel-postgres' ? ([] | [\n\t\t\t\t(\n\t\t\t\t\t& IfNotImported<\n\t\t\t\t\t\tClientInstanceMap[TClient],\n\t\t\t\t\t\t{ connection: ImportTypeError<TClient> },\n\t\t\t\t\t\tInitializerParams[TClient]\n\t\t\t\t\t>\n\t\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t),\n\t\t\t])\n\t\t: TClient extends\n\t\t\t'postgres-js' | 'tidb-serverless' | 'libsql' | 'turso' | 'planetscale' | 'neon-http' | 'node-postgres' ? (\n\t\t\t\t[\n\t\t\t\t\t(\n\t\t\t\t\t\t& IfNotImported<\n\t\t\t\t\t\t\tClientInstanceMap[TClient],\n\t\t\t\t\t\t\t{ connection: ImportTypeError<TClient> },\n\t\t\t\t\t\t\tInitializerParams[TClient]\n\t\t\t\t\t\t>\n\t\t\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t\t),\n\t\t\t\t] | [string]\n\t\t\t)\n\t\t: TClient extends 'mysql2' ? (\n\t\t\t\t[\n\t\t\t\t\t(\n\t\t\t\t\t\t& IfNotImported<\n\t\t\t\t\t\t\tClientInstanceMap[TClient],\n\t\t\t\t\t\t\t{ connection: ImportTypeError<TClient> },\n\t\t\t\t\t\t\tInitializerParams[TClient]\n\t\t\t\t\t\t>\n\t\t\t\t\t\t& MySql2DrizzleConfig<TSchema>\n\t\t\t\t\t),\n\t\t\t\t] | [string]\n\t\t\t)\n\t\t: TClient extends 'neon-websocket' ? (\n\t\t\t\t| [\n\t\t\t\t\t& IfNotImported<\n\t\t\t\t\t\tClientInstanceMap[TClient],\n\t\t\t\t\t\t{ connection: ImportTypeError<TClient> },\n\t\t\t\t\t\tInitializerParams[TClient]\n\t\t\t\t\t>\n\t\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t\t& {\n\t\t\t\t\t\tws?: any;\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\t| [string]\n\t\t\t)\n\t\t: [\n\t\t\t(\n\t\t\t\t& IfNotImported<\n\t\t\t\t\tClientInstanceMap[TClient],\n\t\t\t\t\t{ connection: ImportTypeError<TClient> },\n\t\t\t\t\tInitializerParams[TClient]\n\t\t\t\t>\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t),\n\t\t]\n): Promise<DetermineClient<TClient, TSchema>> {\n\tswitch (client) {\n\t\tcase 'node-postgres': {\n\t\t\tconst defpg = await import('pg').catch(() => importError('pg'));\n\t\t\tconst { drizzle } = await import('./node-postgres');\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ...drizzleConfig } = params[0] as\n\t\t\t\t\t& { connection: NodePgPoolConfig | string }\n\t\t\t\t\t& DrizzleConfig;\n\n\t\t\t\tconst instance = typeof connection === 'string'\n\t\t\t\t\t? new defpg.default.Pool({\n\t\t\t\t\t\tconnectionString: connection,\n\t\t\t\t\t})\n\t\t\t\t\t: new defpg.default.Pool(connection);\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst instance = typeof params[0] === 'string'\n\t\t\t\t? new defpg.default.Pool({\n\t\t\t\t\tconnectionString: params[0],\n\t\t\t\t})\n\t\t\t\t: new defpg.default.Pool(params[0]);\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'aws-data-api-pg': {\n\t\t\tconst { connection, ...drizzleConfig } = params[0] as {\n\t\t\t\tconnection: AwsDataApiConnectionConfig;\n\t\t\t} & DrizzleConfig<TSchema>;\n\t\t\tconst { resourceArn, database, secretArn, ...rdsConfig } = connection;\n\n\t\t\tconst { RDSDataClient } = await import('@aws-sdk/client-rds-data').catch(() =>\n\t\t\t\timportError('@aws-sdk/client-rds-data')\n\t\t\t);\n\t\t\tconst { drizzle } = await import('./aws-data-api/pg');\n\n\t\t\tconst instance = new RDSDataClient(rdsConfig);\n\t\t\tconst db = drizzle(instance, { resourceArn, database, secretArn, ...drizzleConfig });\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'better-sqlite3': {\n\t\t\tconst { default: Client } = await import('better-sqlite3').catch(() => importError('better-sqlite3'));\n\t\t\tconst { drizzle } = await import('./better-sqlite3');\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ...drizzleConfig } = params[0] as {\n\t\t\t\t\tconnection: BetterSQLite3DatabaseConfig;\n\t\t\t\t} & DrizzleConfig;\n\n\t\t\t\tif (typeof connection === 'object') {\n\t\t\t\t\tconst { source, ...options } = connection;\n\n\t\t\t\t\tconst instance = new Client(source, options);\n\t\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\t\treturn db as any;\n\t\t\t\t}\n\n\t\t\t\tconst instance = new Client(connection);\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst instance = new Client(params[0]);\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'bun:sqlite': {\n\t\t\tconst { Database: Client } = await import('bun:sqlite').catch(() => {\n\t\t\t\tthrow new Error(`Please use bun to use 'bun:sqlite' for Drizzle ORM to connect to database`);\n\t\t\t});\n\t\t\tconst { drizzle } = await import('./bun-sqlite');\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ...drizzleConfig } = params[0] as {\n\t\t\t\t\tconnection: BunSqliteDatabaseConfig | string | undefined;\n\t\t\t\t} & DrizzleConfig;\n\n\t\t\t\tif (typeof connection === 'object') {\n\t\t\t\t\tconst { source, ...opts } = connection;\n\n\t\t\t\t\tconst options = Object.values(opts).filter((v) => v !== undefined).length ? opts : undefined;\n\n\t\t\t\t\tconst instance = new Client(source, options);\n\t\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\t\treturn db as any;\n\t\t\t\t}\n\n\t\t\t\tconst instance = new Client(connection);\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst instance = new Client(params[0]);\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'd1': {\n\t\t\tconst { connection, ...drizzleConfig } = params[0] as { connection: AnyD1Database } & DrizzleConfig;\n\n\t\t\tconst { drizzle } = await import('./d1');\n\n\t\t\tconst db = drizzle(connection, drizzleConfig);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'libsql':\n\t\tcase 'turso': {\n\t\t\tconst { createClient } = await import('@libsql/client').catch(() => importError('@libsql/client'));\n\t\t\tconst { drizzle } = await import('./libsql');\n\n\t\t\tif (typeof params[0] === 'string') {\n\t\t\t\tconst instance = createClient({\n\t\t\t\t\turl: params[0],\n\t\t\t\t});\n\t\t\t\tconst db = drizzle(instance);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst { connection, ...drizzleConfig } = params[0] as any as { connection: LibsqlConfig } & DrizzleConfig;\n\n\t\t\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : createClient(connection);\n\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'mysql2': {\n\t\t\tconst { createPool } = await import('mysql2/promise').catch(() => importError('mysql2'));\n\t\t\tconst { drizzle } = await import('./mysql2');\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ...drizzleConfig } = params[0] as\n\t\t\t\t\t& { connection: Mysql2Config | string }\n\t\t\t\t\t& MySql2DrizzleConfig;\n\n\t\t\t\tconst instance = createPool(connection as Mysql2Config);\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst connectionString = params[0]!;\n\t\t\tconst instance = createPool(connectionString);\n\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'neon-http': {\n\t\t\tconst { neon } = await import('@neondatabase/serverless').catch(() => importError('@neondatabase/serverless'));\n\t\t\tconst { drizzle } = await import('./neon-http');\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ...drizzleConfig } = params[0] as { connection: MonodriverNeonHttpConfig } & DrizzleConfig;\n\n\t\t\t\tif (typeof connection === 'object') {\n\t\t\t\t\tconst { connectionString, ...options } = connection;\n\n\t\t\t\t\tconst instance = neon(connectionString, options);\n\t\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\t\treturn db as any;\n\t\t\t\t}\n\n\t\t\t\tconst instance = neon(connection);\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst instance = neon(params[0]!);\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'neon-websocket': {\n\t\t\tconst { Pool, neonConfig } = await import('@neondatabase/serverless').catch(() =>\n\t\t\t\timportError('@neondatabase/serverless')\n\t\t\t);\n\t\t\tconst { drizzle } = await import('./neon-serverless');\n\t\t\tif (typeof params[0] === 'string') {\n\t\t\t\tconst instance = new Pool({\n\t\t\t\t\tconnectionString: params[0],\n\t\t\t\t});\n\n\t\t\t\tconst db = drizzle(instance);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ws, ...drizzleConfig } = params[0] as {\n\t\t\t\t\tconnection?: NeonServerlessConfig | string;\n\t\t\t\t\tws?: any;\n\t\t\t\t} & DrizzleConfig;\n\n\t\t\t\tif (ws) {\n\t\t\t\t\tneonConfig.webSocketConstructor = ws;\n\t\t\t\t}\n\n\t\t\t\tconst instance = typeof connection === 'string'\n\t\t\t\t\t? new Pool({\n\t\t\t\t\t\tconnectionString: connection,\n\t\t\t\t\t})\n\t\t\t\t\t: new Pool(connection);\n\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst instance = new Pool();\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'planetscale': {\n\t\t\tconst { Client } = await import('@planetscale/database').catch(() => importError('@planetscale/database'));\n\t\t\tconst { drizzle } = await import('./planetscale-serverless');\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ...drizzleConfig } = params[0] as\n\t\t\t\t\t& { connection: PlanetscaleConfig | string }\n\t\t\t\t\t& DrizzleConfig;\n\n\t\t\t\tconst instance = typeof connection === 'string'\n\t\t\t\t\t? new Client({\n\t\t\t\t\t\turl: connection,\n\t\t\t\t\t})\n\t\t\t\t\t: new Client(\n\t\t\t\t\t\tconnection,\n\t\t\t\t\t);\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst instance = new Client({\n\t\t\t\turl: params[0],\n\t\t\t});\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'postgres-js': {\n\t\t\tconst { default: client } = await import('postgres').catch(() => importError('postgres'));\n\t\t\tconst { drizzle } = await import('./postgres-js');\n\n\t\t\tif (typeof params[0] === 'object') {\n\t\t\t\tconst { connection, ...drizzleConfig } = params[0] as {\n\t\t\t\t\tconnection: { url?: string } & PostgresJSOptions<Record<string, PostgresJSPostgresType>>;\n\t\t\t\t} & DrizzleConfig;\n\n\t\t\t\tif (typeof connection === 'object' && connection.url !== undefined) {\n\t\t\t\t\tconst { url, ...config } = connection;\n\n\t\t\t\t\tconst instance = client(url, config);\n\t\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\t\treturn db as any;\n\t\t\t\t}\n\n\t\t\t\tconst instance = client(connection);\n\t\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst instance = client(params[0]!);\n\t\t\tconst db = drizzle(instance);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'tidb-serverless': {\n\t\t\tconst { connect } = await import('@tidbcloud/serverless').catch(() => importError('@tidbcloud/serverless'));\n\t\t\tconst { drizzle } = await import('./tidb-serverless');\n\n\t\t\tif (typeof params[0] === 'string') {\n\t\t\t\tconst instance = connect({\n\t\t\t\t\turl: params[0],\n\t\t\t\t});\n\t\t\t\tconst db = drizzle(instance);\n\n\t\t\t\treturn db as any;\n\t\t\t}\n\n\t\t\tconst { connection, ...drizzleConfig } = params[0] as\n\t\t\t\t& { connection: TiDBServerlessConfig | string }\n\t\t\t\t& DrizzleConfig;\n\n\t\t\tconst instance = typeof connection === 'string'\n\t\t\t\t? connect({\n\t\t\t\t\turl: connection,\n\t\t\t\t})\n\t\t\t\t: connect(connection);\n\t\t\tconst db = drizzle(instance, drizzleConfig);\n\n\t\t\treturn db as any;\n\t\t}\n\t\tcase 'vercel-postgres': {\n\t\t\tconst drizzleConfig = params[0] as DrizzleConfig | undefined;\n\t\t\tconst { sql } = await import('@vercel/postgres').catch(() => importError('@vercel/postgres'));\n\t\t\tconst { drizzle } = await import('./vercel-postgres');\n\n\t\t\tconst db = drizzle(sql, drizzleConfig);\n\n\t\t\treturn db as any;\n\t\t}\n\t}\n\n\tassertUnreachable(client);\n}\n"],"mappings":"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","names":["drizzle","instance","db","client"]}
package/monodriver.d.cts CHANGED
@@ -1,32 +1,31 @@
1
- /// <reference types="@cloudflare/workers-types" />
2
- /// <reference types="node" />
3
1
  /// <reference types="bun-types" />
2
+ /// <reference types="node" />
4
3
  import type { RDSDataClient, RDSDataClientConfig as RDSConfig } from '@aws-sdk/client-rds-data';
5
4
  import type { Client as LibsqlClient, Config as LibsqlConfig } from '@libsql/client';
6
- import type { HTTPTransactionOptions as NeonHttpConfig, NeonQueryFunction, Pool as NeonServerlessPool, PoolConfig as NeonServerlessConfig } from '@neondatabase/serverless';
5
+ import type { HTTPTransactionOptions as NeonHttpConfig, NeonQueryFunction, Pool as NeonServerlessPool, PoolConfig as NeonServerlessConfig, QueryResult, QueryResultRow } from '@neondatabase/serverless';
7
6
  import type { Client as PlanetscaleClient, Config as PlanetscaleConfig } from '@planetscale/database';
8
7
  import type { Config as TiDBServerlessConfig, Connection as TiDBConnection } from '@tidbcloud/serverless';
9
- import type { QueryResult, QueryResultRow, VercelPool } from '@vercel/postgres';
8
+ import type { VercelPool } from '@vercel/postgres';
10
9
  import type { Database as BetterSQLite3Database, Options as BetterSQLite3Options } from 'better-sqlite3';
11
10
  import type { Database as BunDatabase } from 'bun:sqlite';
12
11
  import type { Pool as Mysql2Pool, PoolOptions as Mysql2Config } from 'mysql2';
13
- import type { Pool as NodePgPool, PoolConfig as NodePGPoolConfig } from 'pg';
12
+ import type { Pool as NodePgPool, PoolConfig as NodePgPoolConfig } from 'pg';
14
13
  import type { Options as PostgresJSOptions, PostgresType as PostgresJSPostgresType, Sql as PostgresJsClient } from 'postgres';
15
14
  import type { AwsDataApiPgDatabase, DrizzleAwsDataApiPgConfig } from "./aws-data-api/pg/index.cjs";
16
15
  import type { BetterSQLite3Database as DrizzleBetterSQLite3Database } from "./better-sqlite3/index.cjs";
17
16
  import type { BunSQLiteDatabase } from "./bun-sqlite/index.cjs";
18
- import type { DrizzleD1Database } from "./d1/index.cjs";
17
+ import type { AnyD1Database, DrizzleD1Database } from "./d1/index.cjs";
19
18
  import type { LibSQLDatabase } from "./libsql/index.cjs";
20
19
  import type { MySql2Database, MySql2DrizzleConfig } from "./mysql2/index.cjs";
21
20
  import type { NeonHttpDatabase } from "./neon-http/index.cjs";
22
21
  import type { NeonDatabase } from "./neon-serverless/index.cjs";
23
- import type { NodePgDatabase } from "./node-postgres/index.cjs";
22
+ import type { NodePgDatabase } from "./node-postgres/driver.cjs";
24
23
  import type { PlanetScaleDatabase } from "./planetscale-serverless/index.cjs";
25
24
  import type { PostgresJsDatabase } from "./postgres-js/index.cjs";
26
25
  import type { TiDBServerlessDatabase } from "./tidb-serverless/index.cjs";
27
- import type { DrizzleConfig } from "./utils.cjs";
26
+ import type { DrizzleConfig, IfNotImported } from "./utils.cjs";
28
27
  import type { VercelPgDatabase } from "./vercel-postgres/index.cjs";
29
- type BunSqliteDatabaseOptions = number | {
28
+ type BunSqliteDatabaseOptions = {
30
29
  /**
31
30
  * Open the database as read-only (no write operations, no create).
32
31
  *
@@ -46,24 +45,21 @@ type BunSqliteDatabaseOptions = number | {
46
45
  */
47
46
  readwrite?: boolean;
48
47
  };
49
- type BunSqliteDatabaseConfig = {
50
- filename?: ':memory:' | (string & {});
51
- options?: BunSqliteDatabaseOptions;
52
- } | ':memory:' | (string & {}) | undefined;
53
- type BetterSQLite3DatabaseConfig = {
54
- filename?: ':memory:' | (string & {}) | Buffer;
55
- options?: BetterSQLite3Options;
56
- } | ':memory:' | (string & {}) | undefined;
57
- type MonodriverNeonHttpConfig = {
48
+ type BunSqliteDatabaseConfig = ({
49
+ source?: string;
50
+ } & BunSqliteDatabaseOptions) | string | undefined;
51
+ type BetterSQLite3DatabaseConfig = ({
52
+ source?: string | Buffer;
53
+ } & BetterSQLite3Options) | string | undefined;
54
+ type MonodriverNeonHttpConfig = ({
58
55
  connectionString: string;
59
- options?: NeonHttpConfig<boolean, boolean>;
60
- };
61
- type VercelPrimitive = string | number | boolean | undefined | null;
62
- type DatabaseClient = 'node-postgres' | 'postgres-js' | 'neon-serverless' | 'neon-http' | 'vercel-postgres' | 'aws-data-api-pg' | 'planetscale' | 'mysql2' | 'tidb-serverless' | 'libsql' | 'd1' | 'bun:sqlite' | 'better-sqlite3';
56
+ } & NeonHttpConfig<boolean, boolean>) | string;
57
+ type AwsDataApiConnectionConfig = RDSConfig & Omit<DrizzleAwsDataApiPgConfig, keyof DrizzleConfig>;
58
+ type DatabaseClient = 'node-postgres' | 'postgres-js' | 'neon-websocket' | 'neon-http' | 'vercel-postgres' | 'aws-data-api-pg' | 'planetscale' | 'mysql2' | 'tidb-serverless' | 'libsql' | 'turso' | 'd1' | 'bun:sqlite' | 'better-sqlite3';
63
59
  type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
64
60
  'node-postgres': NodePgDatabase<TSchema>;
65
61
  'postgres-js': PostgresJsDatabase<TSchema>;
66
- 'neon-serverless': NeonDatabase<TSchema>;
62
+ 'neon-websocket': NeonDatabase<TSchema>;
67
63
  'neon-http': NeonHttpDatabase<TSchema>;
68
64
  'vercel-postgres': VercelPgDatabase<TSchema>;
69
65
  'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;
@@ -71,58 +67,81 @@ type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
71
67
  mysql2: MySql2Database<TSchema>;
72
68
  'tidb-serverless': TiDBServerlessDatabase<TSchema>;
73
69
  libsql: LibSQLDatabase<TSchema>;
70
+ turso: LibSQLDatabase<TSchema>;
74
71
  d1: DrizzleD1Database<TSchema>;
75
72
  'bun:sqlite': BunSQLiteDatabase<TSchema>;
76
73
  'better-sqlite3': DrizzleBetterSQLite3Database<TSchema>;
77
74
  };
75
+ type Primitive = string | number | boolean | undefined | null;
78
76
  type ClientInstanceMap = {
79
77
  'node-postgres': NodePgPool;
80
78
  'postgres-js': PostgresJsClient;
81
- 'neon-serverless': NeonServerlessPool;
79
+ 'neon-websocket': NeonServerlessPool;
82
80
  'neon-http': NeonQueryFunction<boolean, boolean>;
83
- 'vercel-postgres': VercelPool & (<O extends QueryResultRow>(strings: TemplateStringsArray, ...values: VercelPrimitive[]) => Promise<QueryResult<O>>);
81
+ 'vercel-postgres': VercelPool & (<O extends QueryResultRow>(strings: TemplateStringsArray, ...values: Primitive[]) => Promise<QueryResult<O>>);
84
82
  'aws-data-api-pg': RDSDataClient;
85
83
  planetscale: PlanetscaleClient;
86
84
  mysql2: Mysql2Pool;
87
85
  'tidb-serverless': TiDBConnection;
88
86
  libsql: LibsqlClient;
89
- d1: D1Database;
87
+ turso: LibsqlClient;
88
+ d1: AnyD1Database;
90
89
  'bun:sqlite': BunDatabase;
91
90
  'better-sqlite3': BetterSQLite3Database;
92
91
  };
92
+ type ClientTypeImportErrorMap = {
93
+ 'node-postgres': 'pg`, `@types/pg';
94
+ 'postgres-js': 'postgres';
95
+ 'neon-websocket': '@neondatabase/serverless';
96
+ 'neon-http': '@neondatabase/serverless';
97
+ 'vercel-postgres': '@vercel/postgres';
98
+ 'aws-data-api-pg': '@aws-sdk/client-rds-data';
99
+ planetscale: '@planetscale/database';
100
+ mysql2: 'mysql2';
101
+ 'tidb-serverless': '@tidbcloud/serverless';
102
+ libsql: '@libsql/client';
103
+ turso: '@libsql/client';
104
+ d1: '@cloudflare/workers-types` or `@miniflare/d1';
105
+ 'bun:sqlite': 'bun-types';
106
+ 'better-sqlite3': 'better-sqlite3';
107
+ };
108
+ type ImportTypeError<TClient extends DatabaseClient> = `Please install \`${ClientTypeImportErrorMap[TClient]}\` for Drizzle ORM to connect to database`;
93
109
  type InitializerParams = {
94
110
  'node-postgres': {
95
- connection: NodePGPoolConfig;
111
+ connection: string | NodePgPoolConfig;
96
112
  };
97
113
  'postgres-js': {
98
- connection: string | PostgresJSOptions<Record<string, PostgresJSPostgresType>>;
114
+ connection: string | ({
115
+ url?: string;
116
+ } & PostgresJSOptions<Record<string, PostgresJSPostgresType>>);
99
117
  };
100
- 'neon-serverless': {
101
- connection: NeonServerlessConfig;
118
+ 'neon-websocket': {
119
+ connection: string | NeonServerlessConfig;
102
120
  };
103
121
  'neon-http': {
104
122
  connection: MonodriverNeonHttpConfig;
105
123
  };
106
- 'vercel-postgres': {
107
- connection: VercelPool;
108
- };
124
+ 'vercel-postgres': {};
109
125
  'aws-data-api-pg': {
110
- connection?: RDSConfig;
126
+ connection: AwsDataApiConnectionConfig;
111
127
  };
112
128
  planetscale: {
113
- connection: PlanetscaleConfig;
129
+ connection: PlanetscaleConfig | string;
114
130
  };
115
131
  mysql2: {
116
132
  connection: Mysql2Config | string;
117
133
  };
118
134
  'tidb-serverless': {
119
- connection: TiDBServerlessConfig;
135
+ connection: TiDBServerlessConfig | string;
120
136
  };
121
137
  libsql: {
122
- connection: LibsqlConfig;
138
+ connection: LibsqlConfig | string;
139
+ };
140
+ turso: {
141
+ connection: LibsqlConfig | string;
123
142
  };
124
143
  d1: {
125
- connection: D1Database;
144
+ connection: AnyD1Database;
126
145
  };
127
146
  'bun:sqlite': {
128
147
  connection?: BunSqliteDatabaseConfig;
@@ -134,7 +153,32 @@ type InitializerParams = {
134
153
  type DetermineClient<TClient extends DatabaseClient, TSchema extends Record<string, unknown>> = ClientDrizzleInstanceMap<TSchema>[TClient] & {
135
154
  $client: ClientInstanceMap[TClient];
136
155
  };
137
- export declare function drizzle<TClient extends DatabaseClient, TSchema extends Record<string, unknown> = Record<string, never>>(client: TClient, params: InitializerParams[TClient] & (TClient extends 'mysql2' ? MySql2DrizzleConfig<TSchema> : TClient extends 'aws-data-api-pg' ? DrizzleAwsDataApiPgConfig<TSchema> : TClient extends 'neon-serverless' ? DrizzleConfig<TSchema> & {
138
- ws?: any;
139
- } : DrizzleConfig<TSchema>)): Promise<DetermineClient<TClient, TSchema>>;
156
+ export declare function drizzle<TClient extends DatabaseClient, TSchema extends Record<string, unknown> = Record<string, never>>(client: TClient, ...params: TClient extends 'bun:sqlite' | 'better-sqlite3' ? ([
157
+ ] | [
158
+ (IfNotImported<ClientInstanceMap[TClient], {
159
+ connection: ImportTypeError<TClient>;
160
+ }, InitializerParams[TClient]> & DrizzleConfig<TSchema>)
161
+ ] | [string]) : TClient extends 'vercel-postgres' ? ([] | [
162
+ (IfNotImported<ClientInstanceMap[TClient], {
163
+ connection: ImportTypeError<TClient>;
164
+ }, InitializerParams[TClient]> & DrizzleConfig<TSchema>)
165
+ ]) : TClient extends 'postgres-js' | 'tidb-serverless' | 'libsql' | 'turso' | 'planetscale' | 'neon-http' | 'node-postgres' ? ([
166
+ (IfNotImported<ClientInstanceMap[TClient], {
167
+ connection: ImportTypeError<TClient>;
168
+ }, InitializerParams[TClient]> & DrizzleConfig<TSchema>)
169
+ ] | [string]) : TClient extends 'mysql2' ? ([
170
+ (IfNotImported<ClientInstanceMap[TClient], {
171
+ connection: ImportTypeError<TClient>;
172
+ }, InitializerParams[TClient]> & MySql2DrizzleConfig<TSchema>)
173
+ ] | [string]) : TClient extends 'neon-websocket' ? ([
174
+ IfNotImported<ClientInstanceMap[TClient], {
175
+ connection: ImportTypeError<TClient>;
176
+ }, InitializerParams[TClient]> & DrizzleConfig<TSchema> & {
177
+ ws?: any;
178
+ }
179
+ ] | [string]) : [
180
+ (IfNotImported<ClientInstanceMap[TClient], {
181
+ connection: ImportTypeError<TClient>;
182
+ }, InitializerParams[TClient]> & DrizzleConfig<TSchema>)
183
+ ]): Promise<DetermineClient<TClient, TSchema>>;
140
184
  export {};