drizzle-orm 0.33.0-38d6dab → 0.33.0-3c3ccca

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 (129) hide show
  1. package/aws-data-api/common/index.d.cts +1 -1
  2. package/aws-data-api/common/index.d.ts +1 -1
  3. package/better-sqlite3/driver.cjs +7 -1
  4. package/better-sqlite3/driver.cjs.map +1 -1
  5. package/better-sqlite3/driver.d.cts +4 -1
  6. package/better-sqlite3/driver.d.ts +4 -1
  7. package/better-sqlite3/driver.js +6 -1
  8. package/better-sqlite3/driver.js.map +1 -1
  9. package/bun-sqlite/driver.cjs +7 -1
  10. package/bun-sqlite/driver.cjs.map +1 -1
  11. package/bun-sqlite/driver.d.cts +4 -1
  12. package/bun-sqlite/driver.d.ts +4 -1
  13. package/bun-sqlite/driver.js +6 -1
  14. package/bun-sqlite/driver.js.map +1 -1
  15. package/expo-sqlite/driver.cjs +7 -1
  16. package/expo-sqlite/driver.cjs.map +1 -1
  17. package/expo-sqlite/driver.d.cts +4 -1
  18. package/expo-sqlite/driver.d.ts +4 -1
  19. package/expo-sqlite/driver.js +6 -1
  20. package/expo-sqlite/driver.js.map +1 -1
  21. package/index.cjs +4 -0
  22. package/index.cjs.map +1 -1
  23. package/index.d.cts +2 -0
  24. package/index.d.ts +2 -0
  25. package/index.js +2 -0
  26. package/index.js.map +1 -1
  27. package/libsql/migrator.cjs.map +1 -1
  28. package/libsql/migrator.d.cts +1 -1
  29. package/libsql/migrator.d.ts +1 -1
  30. package/libsql/migrator.js.map +1 -1
  31. package/monodriver.cjs +142 -0
  32. package/monodriver.cjs.map +1 -0
  33. package/monodriver.d.cts +119 -0
  34. package/monodriver.d.ts +119 -0
  35. package/monodriver.js +108 -0
  36. package/monodriver.js.map +1 -0
  37. package/monomigrator.cjs +95 -0
  38. package/monomigrator.cjs.map +1 -0
  39. package/monomigrator.d.cts +15 -0
  40. package/monomigrator.d.ts +15 -0
  41. package/monomigrator.js +61 -0
  42. package/monomigrator.js.map +1 -0
  43. package/mysql-proxy/driver.cjs +7 -1
  44. package/mysql-proxy/driver.cjs.map +1 -1
  45. package/mysql-proxy/driver.d.cts +4 -1
  46. package/mysql-proxy/driver.d.ts +4 -1
  47. package/mysql-proxy/driver.js +6 -1
  48. package/mysql-proxy/driver.js.map +1 -1
  49. package/mysql2/driver.cjs +6 -1
  50. package/mysql2/driver.cjs.map +1 -1
  51. package/mysql2/driver.d.cts +3 -1
  52. package/mysql2/driver.d.ts +3 -1
  53. package/mysql2/driver.js +5 -1
  54. package/mysql2/driver.js.map +1 -1
  55. package/mysql2/migrator.cjs +4 -1
  56. package/mysql2/migrator.cjs.map +1 -1
  57. package/mysql2/migrator.d.cts +1 -1
  58. package/mysql2/migrator.d.ts +1 -1
  59. package/mysql2/migrator.js +4 -1
  60. package/mysql2/migrator.js.map +1 -1
  61. package/neon-serverless/driver.cjs +6 -1
  62. package/neon-serverless/driver.cjs.map +1 -1
  63. package/neon-serverless/driver.d.cts +3 -1
  64. package/neon-serverless/driver.d.ts +3 -1
  65. package/neon-serverless/driver.js +5 -1
  66. package/neon-serverless/driver.js.map +1 -1
  67. package/node-postgres/driver.cjs +6 -1
  68. package/node-postgres/driver.cjs.map +1 -1
  69. package/node-postgres/driver.d.cts +3 -1
  70. package/node-postgres/driver.d.ts +3 -1
  71. package/node-postgres/driver.js +5 -1
  72. package/node-postgres/driver.js.map +1 -1
  73. package/op-sqlite/driver.cjs +7 -1
  74. package/op-sqlite/driver.cjs.map +1 -1
  75. package/op-sqlite/driver.d.cts +4 -1
  76. package/op-sqlite/driver.d.ts +4 -1
  77. package/op-sqlite/driver.js +6 -1
  78. package/op-sqlite/driver.js.map +1 -1
  79. package/package.json +73 -49
  80. package/pg-core/db.cjs.map +1 -1
  81. package/pg-core/db.d.cts +1 -1
  82. package/pg-core/db.d.ts +1 -1
  83. package/pg-core/db.js.map +1 -1
  84. package/pg-proxy/driver.cjs +7 -1
  85. package/pg-proxy/driver.cjs.map +1 -1
  86. package/pg-proxy/driver.d.cts +4 -1
  87. package/pg-proxy/driver.d.ts +4 -1
  88. package/pg-proxy/driver.js +6 -1
  89. package/pg-proxy/driver.js.map +1 -1
  90. package/pglite/driver.cjs +6 -1
  91. package/pglite/driver.cjs.map +1 -1
  92. package/pglite/driver.d.cts +3 -1
  93. package/pglite/driver.d.ts +3 -1
  94. package/pglite/driver.js +5 -1
  95. package/pglite/driver.js.map +1 -1
  96. package/planetscale-serverless/driver.cjs +7 -1
  97. package/planetscale-serverless/driver.cjs.map +1 -1
  98. package/planetscale-serverless/driver.d.cts +4 -1
  99. package/planetscale-serverless/driver.d.ts +4 -1
  100. package/planetscale-serverless/driver.js +6 -1
  101. package/planetscale-serverless/driver.js.map +1 -1
  102. package/planetscale-serverless/migrator.cjs +4 -1
  103. package/planetscale-serverless/migrator.cjs.map +1 -1
  104. package/planetscale-serverless/migrator.d.cts +1 -1
  105. package/planetscale-serverless/migrator.d.ts +1 -1
  106. package/planetscale-serverless/migrator.js +4 -1
  107. package/planetscale-serverless/migrator.js.map +1 -1
  108. package/postgres-js/driver.cjs +7 -1
  109. package/postgres-js/driver.cjs.map +1 -1
  110. package/postgres-js/driver.d.cts +4 -1
  111. package/postgres-js/driver.d.ts +4 -1
  112. package/postgres-js/driver.js +6 -1
  113. package/postgres-js/driver.js.map +1 -1
  114. package/tidb-serverless/driver.cjs +7 -1
  115. package/tidb-serverless/driver.cjs.map +1 -1
  116. package/tidb-serverless/driver.d.cts +4 -1
  117. package/tidb-serverless/driver.d.ts +4 -1
  118. package/tidb-serverless/driver.js +6 -1
  119. package/tidb-serverless/driver.js.map +1 -1
  120. package/vercel-postgres/driver.cjs +6 -1
  121. package/vercel-postgres/driver.cjs.map +1 -1
  122. package/vercel-postgres/driver.d.cts +3 -1
  123. package/vercel-postgres/driver.d.ts +3 -1
  124. package/vercel-postgres/driver.js +5 -1
  125. package/vercel-postgres/driver.js.map +1 -1
  126. package/version.cjs +1 -1
  127. package/version.d.cts +1 -1
  128. package/version.d.ts +1 -1
  129. package/version.js +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { RDSDataClientConfig, RDSDataClientConfig as RDSConfig } from '@aws-sdk/client-rds-data';\nimport type { Config as LibsqlConfig } from '@libsql/client';\nimport type {\n\tHTTPTransactionOptions as NeonHttpConfig,\n\tPoolConfig as NeonServerlessConfig,\n} from '@neondatabase/serverless';\nimport type { Config as PlanetscaleConfig } from '@planetscale/database';\nimport type { Config as TiDBServerlessConfig } from '@tidbcloud/serverless';\nimport type { VercelPool } from '@vercel/postgres';\nimport type { Options as BetterSQLite3Options } from 'better-sqlite3';\nimport type { PoolOptions as Mysql2Config } from 'mysql2';\nimport type { PoolConfig as NodePGPoolConfig } from 'pg';\nimport type { Options as PostgresJSOptions, PostgresType as PostgresJSPostgresType } from 'postgres';\nimport type { AwsDataApiPgDatabase, DrizzleAwsDataApiPgConfig } from './aws-data-api/pg/index.ts';\nimport type { BetterSQLite3Database } 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 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': BetterSQLite3Database<TSchema>;\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\tTVendor extends DatabaseClient,\n\tTSchema extends Record<string, unknown>,\n> = ClientDrizzleInstanceMap<\n\tTSchema\n>[TVendor];\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: DrizzleConfig<TSchema>),\n): Promise<DetermineClient<TClient, TSchema>> {\n\tconst { connection, ...drizzleConfig } = params;\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\treturn drizzle(instance, drizzleConfig) as any;\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\treturn drizzle(instance, drizzleConfig as any as DrizzleAwsDataApiPgConfig) 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 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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t\t}\n\n\t\t\tconst instance = new Client(connection);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t\t}\n\n\t\t\tconst instance = new Client(connection);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'd1': {\n\t\t\tconst { drizzle } = await import('./d1');\n\t\t\treturn drizzle(connection as D1Database, drizzleConfig) as any;\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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'mysql2': {\n\t\t\tconst { createConnection } = await import('mysql2/promise').catch(() => importError('mysql2/promise'));\n\t\t\tconst instance = await createConnection(connection as Mysql2Config);\n\t\t\tconst { drizzle } = await import('./mysql2');\n\n\t\t\treturn drizzle(instance, drizzleConfig as MySql2DrizzleConfig) 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 { 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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'neon-serverless': {\n\t\t\tconst { Pool } = await import('@neondatabase/serverless').catch(() => importError('@neondatabase/serverless'));\n\t\t\tconst { drizzle } = await import('./neon-serverless');\n\t\t\tconst instance = new Pool(connection as NeonServerlessConfig);\n\n\t\t\treturn drizzle(instance, drizzleConfig) 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\t\t\tconst instance = new Client(\n\t\t\t\tconnection as PlanetscaleConfig,\n\t\t\t);\n\n\t\t\treturn drizzle(instance, drizzleConfig) 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\t\t\tconst instance = client(connection as PostgresJSOptions<Record<string, PostgresJSPostgresType>>);\n\n\t\t\treturn drizzle(instance, drizzleConfig) 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\t\t\tconst instance = connect(connection as TiDBServerlessConfig);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\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\treturn drizzle(sql, drizzleConfig) as any;\n\t\t}\n\t}\n\n\tassertUnreachable(client);\n}\n"],"mappings":"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","names":["drizzle","instance","client"]}
@@ -0,0 +1,119 @@
1
+ /// <reference types="@cloudflare/workers-types" />
2
+ /// <reference types="node" />
3
+ /// <reference types="bun-types" />
4
+ import type { RDSDataClientConfig as RDSConfig } from '@aws-sdk/client-rds-data';
5
+ import type { Config as LibsqlConfig } from '@libsql/client';
6
+ import type { HTTPTransactionOptions as NeonHttpConfig, PoolConfig as NeonServerlessConfig } from '@neondatabase/serverless';
7
+ import type { Config as PlanetscaleConfig } from '@planetscale/database';
8
+ import type { Config as TiDBServerlessConfig } from '@tidbcloud/serverless';
9
+ import type { VercelPool } from '@vercel/postgres';
10
+ import type { Options as BetterSQLite3Options } from 'better-sqlite3';
11
+ import type { PoolOptions as Mysql2Config } from 'mysql2';
12
+ import type { PoolConfig as NodePGPoolConfig } from 'pg';
13
+ import type { Options as PostgresJSOptions, PostgresType as PostgresJSPostgresType } from 'postgres';
14
+ import type { AwsDataApiPgDatabase, DrizzleAwsDataApiPgConfig } from "./aws-data-api/pg/index.cjs";
15
+ import type { BetterSQLite3Database } from "./better-sqlite3/index.cjs";
16
+ import type { BunSQLiteDatabase } from "./bun-sqlite/index.cjs";
17
+ import type { DrizzleD1Database } from "./d1/index.cjs";
18
+ import type { LibSQLDatabase } from "./libsql/index.cjs";
19
+ import type { MySql2Database, MySql2DrizzleConfig } from "./mysql2/index.cjs";
20
+ import type { NeonHttpDatabase } from "./neon-http/index.cjs";
21
+ import type { NeonDatabase } from "./neon-serverless/index.cjs";
22
+ import type { NodePgDatabase } from "./node-postgres/index.cjs";
23
+ import type { PlanetScaleDatabase } from "./planetscale-serverless/index.cjs";
24
+ import type { PostgresJsDatabase } from "./postgres-js/index.cjs";
25
+ import type { TiDBServerlessDatabase } from "./tidb-serverless/index.cjs";
26
+ import type { DrizzleConfig } from "./utils.cjs";
27
+ import type { VercelPgDatabase } from "./vercel-postgres/index.cjs";
28
+ type BunSqliteDatabaseOptions = number | {
29
+ /**
30
+ * Open the database as read-only (no write operations, no create).
31
+ *
32
+ * Equivalent to {@link constants.SQLITE_OPEN_READONLY}
33
+ */
34
+ readonly?: boolean;
35
+ /**
36
+ * Allow creating a new database
37
+ *
38
+ * Equivalent to {@link constants.SQLITE_OPEN_CREATE}
39
+ */
40
+ create?: boolean;
41
+ /**
42
+ * Open the database as read-write
43
+ *
44
+ * Equivalent to {@link constants.SQLITE_OPEN_READWRITE}
45
+ */
46
+ readwrite?: boolean;
47
+ };
48
+ type BunSqliteDatabaseConfig = {
49
+ filename?: ':memory:' | (string & {});
50
+ options?: BunSqliteDatabaseOptions;
51
+ } | ':memory:' | (string & {}) | undefined;
52
+ type BetterSQLite3DatabaseConfig = {
53
+ filename?: ':memory:' | (string & {}) | Buffer;
54
+ options?: BetterSQLite3Options;
55
+ } | ':memory:' | (string & {}) | undefined;
56
+ type MonodriverNeonHttpConfig = {
57
+ connectionString: string;
58
+ options?: NeonHttpConfig<boolean, boolean>;
59
+ };
60
+ 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';
61
+ type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
62
+ 'node-postgres': NodePgDatabase<TSchema>;
63
+ 'postgres-js': PostgresJsDatabase<TSchema>;
64
+ 'neon-serverless': NeonDatabase<TSchema>;
65
+ 'neon-http': NeonHttpDatabase<TSchema>;
66
+ 'vercel-postgres': VercelPgDatabase<TSchema>;
67
+ 'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;
68
+ planetscale: PlanetScaleDatabase<TSchema>;
69
+ mysql2: MySql2Database<TSchema>;
70
+ 'tidb-serverless': TiDBServerlessDatabase<TSchema>;
71
+ libsql: LibSQLDatabase<TSchema>;
72
+ d1: DrizzleD1Database<TSchema>;
73
+ 'bun:sqlite': BunSQLiteDatabase<TSchema>;
74
+ 'better-sqlite3': BetterSQLite3Database<TSchema>;
75
+ };
76
+ type InitializerParams = {
77
+ 'node-postgres': {
78
+ connection: NodePGPoolConfig;
79
+ };
80
+ 'postgres-js': {
81
+ connection: string | PostgresJSOptions<Record<string, PostgresJSPostgresType>>;
82
+ };
83
+ 'neon-serverless': {
84
+ connection: NeonServerlessConfig;
85
+ };
86
+ 'neon-http': {
87
+ connection: MonodriverNeonHttpConfig;
88
+ };
89
+ 'vercel-postgres': {
90
+ connection: VercelPool;
91
+ };
92
+ 'aws-data-api-pg': {
93
+ connection?: RDSConfig;
94
+ };
95
+ planetscale: {
96
+ connection: PlanetscaleConfig;
97
+ };
98
+ mysql2: {
99
+ connection: Mysql2Config | string;
100
+ };
101
+ 'tidb-serverless': {
102
+ connection: TiDBServerlessConfig;
103
+ };
104
+ libsql: {
105
+ connection: LibsqlConfig;
106
+ };
107
+ d1: {
108
+ connection: D1Database;
109
+ };
110
+ 'bun:sqlite': {
111
+ connection?: BunSqliteDatabaseConfig;
112
+ };
113
+ 'better-sqlite3': {
114
+ connection?: BetterSQLite3DatabaseConfig;
115
+ };
116
+ };
117
+ type DetermineClient<TVendor extends DatabaseClient, TSchema extends Record<string, unknown>> = ClientDrizzleInstanceMap<TSchema>[TVendor];
118
+ 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> : DrizzleConfig<TSchema>)): Promise<DetermineClient<TClient, TSchema>>;
119
+ export {};
@@ -0,0 +1,119 @@
1
+ /// <reference types="@cloudflare/workers-types" />
2
+ /// <reference types="node" />
3
+ /// <reference types="bun-types" />
4
+ import type { RDSDataClientConfig as RDSConfig } from '@aws-sdk/client-rds-data';
5
+ import type { Config as LibsqlConfig } from '@libsql/client';
6
+ import type { HTTPTransactionOptions as NeonHttpConfig, PoolConfig as NeonServerlessConfig } from '@neondatabase/serverless';
7
+ import type { Config as PlanetscaleConfig } from '@planetscale/database';
8
+ import type { Config as TiDBServerlessConfig } from '@tidbcloud/serverless';
9
+ import type { VercelPool } from '@vercel/postgres';
10
+ import type { Options as BetterSQLite3Options } from 'better-sqlite3';
11
+ import type { PoolOptions as Mysql2Config } from 'mysql2';
12
+ import type { PoolConfig as NodePGPoolConfig } from 'pg';
13
+ import type { Options as PostgresJSOptions, PostgresType as PostgresJSPostgresType } from 'postgres';
14
+ import type { AwsDataApiPgDatabase, DrizzleAwsDataApiPgConfig } from "./aws-data-api/pg/index.js";
15
+ import type { BetterSQLite3Database } from "./better-sqlite3/index.js";
16
+ import type { BunSQLiteDatabase } from "./bun-sqlite/index.js";
17
+ import type { DrizzleD1Database } from "./d1/index.js";
18
+ import type { LibSQLDatabase } from "./libsql/index.js";
19
+ import type { MySql2Database, MySql2DrizzleConfig } from "./mysql2/index.js";
20
+ import type { NeonHttpDatabase } from "./neon-http/index.js";
21
+ import type { NeonDatabase } from "./neon-serverless/index.js";
22
+ import type { NodePgDatabase } from "./node-postgres/index.js";
23
+ import type { PlanetScaleDatabase } from "./planetscale-serverless/index.js";
24
+ import type { PostgresJsDatabase } from "./postgres-js/index.js";
25
+ import type { TiDBServerlessDatabase } from "./tidb-serverless/index.js";
26
+ import type { DrizzleConfig } from "./utils.js";
27
+ import type { VercelPgDatabase } from "./vercel-postgres/index.js";
28
+ type BunSqliteDatabaseOptions = number | {
29
+ /**
30
+ * Open the database as read-only (no write operations, no create).
31
+ *
32
+ * Equivalent to {@link constants.SQLITE_OPEN_READONLY}
33
+ */
34
+ readonly?: boolean;
35
+ /**
36
+ * Allow creating a new database
37
+ *
38
+ * Equivalent to {@link constants.SQLITE_OPEN_CREATE}
39
+ */
40
+ create?: boolean;
41
+ /**
42
+ * Open the database as read-write
43
+ *
44
+ * Equivalent to {@link constants.SQLITE_OPEN_READWRITE}
45
+ */
46
+ readwrite?: boolean;
47
+ };
48
+ type BunSqliteDatabaseConfig = {
49
+ filename?: ':memory:' | (string & {});
50
+ options?: BunSqliteDatabaseOptions;
51
+ } | ':memory:' | (string & {}) | undefined;
52
+ type BetterSQLite3DatabaseConfig = {
53
+ filename?: ':memory:' | (string & {}) | Buffer;
54
+ options?: BetterSQLite3Options;
55
+ } | ':memory:' | (string & {}) | undefined;
56
+ type MonodriverNeonHttpConfig = {
57
+ connectionString: string;
58
+ options?: NeonHttpConfig<boolean, boolean>;
59
+ };
60
+ 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';
61
+ type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
62
+ 'node-postgres': NodePgDatabase<TSchema>;
63
+ 'postgres-js': PostgresJsDatabase<TSchema>;
64
+ 'neon-serverless': NeonDatabase<TSchema>;
65
+ 'neon-http': NeonHttpDatabase<TSchema>;
66
+ 'vercel-postgres': VercelPgDatabase<TSchema>;
67
+ 'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;
68
+ planetscale: PlanetScaleDatabase<TSchema>;
69
+ mysql2: MySql2Database<TSchema>;
70
+ 'tidb-serverless': TiDBServerlessDatabase<TSchema>;
71
+ libsql: LibSQLDatabase<TSchema>;
72
+ d1: DrizzleD1Database<TSchema>;
73
+ 'bun:sqlite': BunSQLiteDatabase<TSchema>;
74
+ 'better-sqlite3': BetterSQLite3Database<TSchema>;
75
+ };
76
+ type InitializerParams = {
77
+ 'node-postgres': {
78
+ connection: NodePGPoolConfig;
79
+ };
80
+ 'postgres-js': {
81
+ connection: string | PostgresJSOptions<Record<string, PostgresJSPostgresType>>;
82
+ };
83
+ 'neon-serverless': {
84
+ connection: NeonServerlessConfig;
85
+ };
86
+ 'neon-http': {
87
+ connection: MonodriverNeonHttpConfig;
88
+ };
89
+ 'vercel-postgres': {
90
+ connection: VercelPool;
91
+ };
92
+ 'aws-data-api-pg': {
93
+ connection?: RDSConfig;
94
+ };
95
+ planetscale: {
96
+ connection: PlanetscaleConfig;
97
+ };
98
+ mysql2: {
99
+ connection: Mysql2Config | string;
100
+ };
101
+ 'tidb-serverless': {
102
+ connection: TiDBServerlessConfig;
103
+ };
104
+ libsql: {
105
+ connection: LibsqlConfig;
106
+ };
107
+ d1: {
108
+ connection: D1Database;
109
+ };
110
+ 'bun:sqlite': {
111
+ connection?: BunSqliteDatabaseConfig;
112
+ };
113
+ 'better-sqlite3': {
114
+ connection?: BetterSQLite3DatabaseConfig;
115
+ };
116
+ };
117
+ type DetermineClient<TVendor extends DatabaseClient, TSchema extends Record<string, unknown>> = ClientDrizzleInstanceMap<TSchema>[TVendor];
118
+ 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> : DrizzleConfig<TSchema>)): Promise<DetermineClient<TClient, TSchema>>;
119
+ export {};
package/monodriver.js ADDED
@@ -0,0 +1,108 @@
1
+ const importError = (libName) => {
2
+ throw new Error(
3
+ `Please install '${libName}' for Drizzle ORM to connect to database`
4
+ );
5
+ };
6
+ function assertUnreachable(_) {
7
+ throw new Error("Didn't expect to get here");
8
+ }
9
+ async function drizzle(client, params) {
10
+ const { connection, ...drizzleConfig } = params;
11
+ switch (client) {
12
+ case "node-postgres": {
13
+ const { Pool } = await import("pg").catch(() => importError("pg"));
14
+ const { drizzle: drizzle2 } = await import("./node-postgres");
15
+ const instance = new Pool(connection);
16
+ return drizzle2(instance, drizzleConfig);
17
+ }
18
+ case "aws-data-api-pg": {
19
+ const { RDSDataClient } = await import("@aws-sdk/client-rds-data").catch(
20
+ () => importError("@aws-sdk/client-rds-data")
21
+ );
22
+ const { drizzle: drizzle2 } = await import("./aws-data-api/pg");
23
+ const instance = new RDSDataClient(connection);
24
+ return drizzle2(instance, drizzleConfig);
25
+ }
26
+ case "better-sqlite3": {
27
+ const { default: Client } = await import("better-sqlite3").catch(() => importError("better-sqlite3"));
28
+ const { drizzle: drizzle2 } = await import("./better-sqlite3");
29
+ if (typeof connection === "object") {
30
+ const { filename, options } = connection;
31
+ const instance2 = new Client(filename, options);
32
+ return drizzle2(instance2, drizzleConfig);
33
+ }
34
+ const instance = new Client(connection);
35
+ return drizzle2(instance, drizzleConfig);
36
+ }
37
+ case "bun:sqlite": {
38
+ const { Database: Client } = await import("bun:sqlite").catch(() => importError("bun:sqlite"));
39
+ const { drizzle: drizzle2 } = await import("./bun-sqlite");
40
+ if (typeof connection === "object") {
41
+ const { filename, options } = connection;
42
+ const instance2 = new Client(filename, options);
43
+ return drizzle2(instance2, drizzleConfig);
44
+ }
45
+ const instance = new Client(connection);
46
+ return drizzle2(instance, drizzleConfig);
47
+ }
48
+ case "d1": {
49
+ const { drizzle: drizzle2 } = await import("./d1");
50
+ return drizzle2(connection, drizzleConfig);
51
+ }
52
+ case "libsql": {
53
+ const { createClient } = await import("@libsql/client").catch(() => importError("@libsql/client"));
54
+ const { drizzle: drizzle2 } = await import("./libsql");
55
+ const instance = createClient(connection);
56
+ return drizzle2(instance, drizzleConfig);
57
+ }
58
+ case "mysql2": {
59
+ const { createConnection } = await import("mysql2/promise").catch(() => importError("mysql2/promise"));
60
+ const instance = await createConnection(connection);
61
+ const { drizzle: drizzle2 } = await import("./mysql2");
62
+ return drizzle2(instance, drizzleConfig);
63
+ }
64
+ case "neon-http": {
65
+ const { neon } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
66
+ const { connectionString, options } = connection;
67
+ const { drizzle: drizzle2 } = await import("./neon-http");
68
+ const instance = neon(connectionString, options);
69
+ return drizzle2(instance, drizzleConfig);
70
+ }
71
+ case "neon-serverless": {
72
+ const { Pool } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
73
+ const { drizzle: drizzle2 } = await import("./neon-serverless");
74
+ const instance = new Pool(connection);
75
+ return drizzle2(instance, drizzleConfig);
76
+ }
77
+ case "planetscale": {
78
+ const { Client } = await import("@planetscale/database").catch(() => importError("@planetscale/database"));
79
+ const { drizzle: drizzle2 } = await import("./planetscale-serverless");
80
+ const instance = new Client(
81
+ connection
82
+ );
83
+ return drizzle2(instance, drizzleConfig);
84
+ }
85
+ case "postgres-js": {
86
+ const { default: client2 } = await import("postgres").catch(() => importError("postgres"));
87
+ const { drizzle: drizzle2 } = await import("./postgres-js");
88
+ const instance = client2(connection);
89
+ return drizzle2(instance, drizzleConfig);
90
+ }
91
+ case "tidb-serverless": {
92
+ const { connect } = await import("@tidbcloud/serverless").catch(() => importError("@tidbcloud/serverless"));
93
+ const { drizzle: drizzle2 } = await import("./tidb-serverless");
94
+ const instance = connect(connection);
95
+ return drizzle2(instance, drizzleConfig);
96
+ }
97
+ case "vercel-postgres": {
98
+ const { sql } = await import("@vercel/postgres").catch(() => importError("@vercel/postgres"));
99
+ const { drizzle: drizzle2 } = await import("./vercel-postgres");
100
+ return drizzle2(sql, drizzleConfig);
101
+ }
102
+ }
103
+ assertUnreachable(client);
104
+ }
105
+ export {
106
+ drizzle
107
+ };
108
+ //# sourceMappingURL=monodriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { RDSDataClientConfig, RDSDataClientConfig as RDSConfig } from '@aws-sdk/client-rds-data';\nimport type { Config as LibsqlConfig } from '@libsql/client';\nimport type {\n\tHTTPTransactionOptions as NeonHttpConfig,\n\tPoolConfig as NeonServerlessConfig,\n} from '@neondatabase/serverless';\nimport type { Config as PlanetscaleConfig } from '@planetscale/database';\nimport type { Config as TiDBServerlessConfig } from '@tidbcloud/serverless';\nimport type { VercelPool } from '@vercel/postgres';\nimport type { Options as BetterSQLite3Options } from 'better-sqlite3';\nimport type { PoolOptions as Mysql2Config } from 'mysql2';\nimport type { PoolConfig as NodePGPoolConfig } from 'pg';\nimport type { Options as PostgresJSOptions, PostgresType as PostgresJSPostgresType } from 'postgres';\nimport type { AwsDataApiPgDatabase, DrizzleAwsDataApiPgConfig } from './aws-data-api/pg/index.ts';\nimport type { BetterSQLite3Database } 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 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': BetterSQLite3Database<TSchema>;\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\tTVendor extends DatabaseClient,\n\tTSchema extends Record<string, unknown>,\n> = ClientDrizzleInstanceMap<\n\tTSchema\n>[TVendor];\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: DrizzleConfig<TSchema>),\n): Promise<DetermineClient<TClient, TSchema>> {\n\tconst { connection, ...drizzleConfig } = params;\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\treturn drizzle(instance, drizzleConfig) as any;\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\treturn drizzle(instance, drizzleConfig as any as DrizzleAwsDataApiPgConfig) 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 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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t\t}\n\n\t\t\tconst instance = new Client(connection);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t\t}\n\n\t\t\tconst instance = new Client(connection);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'd1': {\n\t\t\tconst { drizzle } = await import('./d1');\n\t\t\treturn drizzle(connection as D1Database, drizzleConfig) as any;\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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'mysql2': {\n\t\t\tconst { createConnection } = await import('mysql2/promise').catch(() => importError('mysql2/promise'));\n\t\t\tconst instance = await createConnection(connection as Mysql2Config);\n\t\t\tconst { drizzle } = await import('./mysql2');\n\n\t\t\treturn drizzle(instance, drizzleConfig as MySql2DrizzleConfig) 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 { 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\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'neon-serverless': {\n\t\t\tconst { Pool } = await import('@neondatabase/serverless').catch(() => importError('@neondatabase/serverless'));\n\t\t\tconst { drizzle } = await import('./neon-serverless');\n\t\t\tconst instance = new Pool(connection as NeonServerlessConfig);\n\n\t\t\treturn drizzle(instance, drizzleConfig) 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\t\t\tconst instance = new Client(\n\t\t\t\tconnection as PlanetscaleConfig,\n\t\t\t);\n\n\t\t\treturn drizzle(instance, drizzleConfig) 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\t\t\tconst instance = client(connection as PostgresJSOptions<Record<string, PostgresJSPostgresType>>);\n\n\t\t\treturn drizzle(instance, drizzleConfig) 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\t\t\tconst instance = connect(connection as TiDBServerlessConfig);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\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\treturn drizzle(sql, drizzleConfig) as any;\n\t\t}\n\t}\n\n\tassertUnreachable(client);\n}\n"],"mappings":"AA8JA,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,QAK6C;AAC7C,QAAM,EAAE,YAAY,GAAG,cAAc,IAAI;AAEzC,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,aAAOA,SAAQ,UAAU,aAAa;AAAA,IACvC;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,aAAOA,SAAQ,UAAU,aAAiD;AAAA,IAC3E;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,eAAOD,SAAQC,WAAU,aAAa;AAAA,MACvC;AAEA,YAAM,WAAW,IAAI,OAAO,UAAU;AAEtC,aAAOD,SAAQ,UAAU,aAAa;AAAA,IACvC;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,eAAOD,SAAQC,WAAU,aAAa;AAAA,MACvC;AAEA,YAAM,WAAW,IAAI,OAAO,UAAU;AAEtC,aAAOD,SAAQ,UAAU,aAAa;AAAA,IACvC;AAAA,IACA,KAAK,MAAM;AACV,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,MAAM;AACvC,aAAOA,SAAQ,YAA0B,aAAa;AAAA,IACvD;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,aAAOA,SAAQ,UAAU,aAAa;AAAA,IACvC;AAAA,IACA,KAAK,UAAU;AACd,YAAM,EAAE,iBAAiB,IAAI,MAAM,OAAO,gBAAgB,EAAE,MAAM,MAAM,YAAY,gBAAgB,CAAC;AACrG,YAAM,WAAW,MAAM,iBAAiB,UAA0B;AAClE,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,UAAU;AAE3C,aAAOA,SAAQ,UAAU,aAAoC;AAAA,IAC9D;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,aAAOA,SAAQ,UAAU,aAAa;AAAA,IACvC;AAAA,IACA,KAAK,mBAAmB;AACvB,YAAM,EAAE,KAAK,IAAI,MAAM,OAAO,0BAA0B,EAAE,MAAM,MAAM,YAAY,0BAA0B,CAAC;AAC7G,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AACpD,YAAM,WAAW,IAAI,KAAK,UAAkC;AAE5D,aAAOA,SAAQ,UAAU,aAAa;AAAA,IACvC;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,aAAOA,SAAQ,UAAU,aAAa;AAAA,IACvC;AAAA,IACA,KAAK,eAAe;AACnB,YAAM,EAAE,SAASE,QAAO,IAAI,MAAM,OAAO,UAAU,EAAE,MAAM,MAAM,YAAY,UAAU,CAAC;AACxF,YAAM,EAAE,SAAAF,SAAQ,IAAI,MAAM,OAAO,eAAe;AAChD,YAAM,WAAWE,QAAO,UAAuE;AAE/F,aAAOF,SAAQ,UAAU,aAAa;AAAA,IACvC;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,aAAOA,SAAQ,UAAU,aAAa;AAAA,IACvC;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,aAAOA,SAAQ,KAAK,aAAa;AAAA,IAClC;AAAA,EACD;AAEA,oBAAkB,MAAM;AACzB;","names":["drizzle","instance","client"]}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var monomigrator_exports = {};
30
+ __export(monomigrator_exports, {
31
+ migrate: () => migrate
32
+ });
33
+ module.exports = __toCommonJS(monomigrator_exports);
34
+ var import_entity = require("./entity.cjs");
35
+ async function migrate(db, config) {
36
+ switch (db.constructor[import_entity.entityKind]) {
37
+ case "AwsDataApiPgDatabase": {
38
+ const { migrate: migrate2 } = await import("./aws-data-api/pg/migrator");
39
+ return migrate2(db, config);
40
+ }
41
+ case "BetterSQLite3Database": {
42
+ const { migrate: migrate2 } = await import("./better-sqlite3/migrator");
43
+ return migrate2(db, config);
44
+ }
45
+ case "BunSQLiteDatabase": {
46
+ const { migrate: migrate2 } = await import("./bun-sqlite/migrator");
47
+ return migrate2(db, config);
48
+ }
49
+ case "D1Database": {
50
+ const { migrate: migrate2 } = await import("./d1/migrator");
51
+ return migrate2(db, config);
52
+ }
53
+ case "LibSQLDatabase": {
54
+ const { migrate: migrate2 } = await import("./libsql/migrator");
55
+ return migrate2(db, config);
56
+ }
57
+ case "MySql2Database": {
58
+ const { migrate: migrate2 } = await import("./mysql2/migrator");
59
+ return migrate2(db, config);
60
+ }
61
+ case "NeonHttpDatabase": {
62
+ const { migrate: migrate2 } = await import("./neon-http/migrator");
63
+ return migrate2(db, config);
64
+ }
65
+ case "NeonServerlessDatabase": {
66
+ const { migrate: migrate2 } = await import("./neon-serverless/migrator");
67
+ return migrate2(db, config);
68
+ }
69
+ case "NodePgDatabase": {
70
+ const { migrate: migrate2 } = await import("./node-postgres/migrator");
71
+ return migrate2(db, config);
72
+ }
73
+ case "PlanetScaleDatabase": {
74
+ const { migrate: migrate2 } = await import("./planetscale-serverless/migrator");
75
+ return migrate2(db, config);
76
+ }
77
+ case "PostgresJsDatabase": {
78
+ const { migrate: migrate2 } = await import("./postgres-js/migrator");
79
+ return migrate2(db, config);
80
+ }
81
+ case "TiDBServerlessDatabase": {
82
+ const { migrate: migrate2 } = await import("./tidb-serverless/migrator");
83
+ return migrate2(db, config);
84
+ }
85
+ case "VercelPgDatabase": {
86
+ const { migrate: migrate2 } = await import("./vercel-postgres/migrator");
87
+ return migrate2(db, config);
88
+ }
89
+ }
90
+ }
91
+ // Annotate the CommonJS export names for ESM import in node:
92
+ 0 && (module.exports = {
93
+ migrate
94
+ });
95
+ //# sourceMappingURL=monomigrator.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/monomigrator.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { AwsDataApiPgDatabase } from './aws-data-api/pg/index.ts';\nimport type { BetterSQLite3Database } from './better-sqlite3/index.ts';\nimport type { BunSQLiteDatabase } from './bun-sqlite/index.ts';\nimport type { DrizzleD1Database } from './d1/index.ts';\nimport { entityKind } from './entity.ts';\nimport type { LibSQLDatabase } from './libsql/index.ts';\nimport type { MigrationConfig } from './migrator.ts';\nimport type { MySql2Database } 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 { VercelPgDatabase } from './vercel-postgres/index.ts';\n\nexport async function migrate(\n\tdb:\n\t\t| AwsDataApiPgDatabase<any>\n\t\t| BetterSQLite3Database<any>\n\t\t| BunSQLiteDatabase<any>\n\t\t| DrizzleD1Database<any>\n\t\t| LibSQLDatabase<any>\n\t\t| MySql2Database<any>\n\t\t| NeonHttpDatabase<any>\n\t\t| NeonDatabase<any>\n\t\t| NodePgDatabase<any>\n\t\t| PlanetScaleDatabase<any>\n\t\t| PostgresJsDatabase<any>\n\t\t| VercelPgDatabase<any>\n\t\t| TiDBServerlessDatabase<any>,\n\tconfig:\n\t\t| string\n\t\t| MigrationConfig,\n) {\n\tswitch ((<any> db).constructor[entityKind]) {\n\t\tcase 'AwsDataApiPgDatabase': {\n\t\t\tconst { migrate } = await import('./aws-data-api/pg/migrator');\n\n\t\t\treturn migrate(db as AwsDataApiPgDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'BetterSQLite3Database': {\n\t\t\tconst { migrate } = await import('./better-sqlite3/migrator');\n\n\t\t\treturn migrate(db as BetterSQLite3Database, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'BunSQLiteDatabase': {\n\t\t\tconst { migrate } = await import('./bun-sqlite/migrator');\n\n\t\t\treturn migrate(db as BunSQLiteDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'D1Database': {\n\t\t\tconst { migrate } = await import('./d1/migrator');\n\n\t\t\treturn migrate(db as DrizzleD1Database, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'LibSQLDatabase': {\n\t\t\tconst { migrate } = await import('./libsql/migrator');\n\n\t\t\treturn migrate(db as LibSQLDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'MySql2Database': {\n\t\t\tconst { migrate } = await import('./mysql2/migrator');\n\n\t\t\treturn migrate(db as MySql2Database, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'NeonHttpDatabase': {\n\t\t\tconst { migrate } = await import('./neon-http/migrator');\n\n\t\t\treturn migrate(db as NeonHttpDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'NeonServerlessDatabase': {\n\t\t\tconst { migrate } = await import('./neon-serverless/migrator');\n\n\t\t\treturn migrate(db as NeonDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'NodePgDatabase': {\n\t\t\tconst { migrate } = await import('./node-postgres/migrator');\n\n\t\t\treturn migrate(db as NodePgDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'PlanetScaleDatabase': {\n\t\t\tconst { migrate } = await import('./planetscale-serverless/migrator');\n\n\t\t\treturn migrate(db as PlanetScaleDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'PostgresJsDatabase': {\n\t\t\tconst { migrate } = await import('./postgres-js/migrator');\n\n\t\t\treturn migrate(db as PostgresJsDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'TiDBServerlessDatabase': {\n\t\t\tconst { migrate } = await import('./tidb-serverless/migrator');\n\n\t\t\treturn migrate(db as TiDBServerlessDatabase, config as MigrationConfig);\n\t\t}\n\t\tcase 'VercelPgDatabase': {\n\t\t\tconst { migrate } = await import('./vercel-postgres/migrator');\n\n\t\t\treturn migrate(db as VercelPgDatabase, config as string | MigrationConfig);\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,oBAA2B;AAY3B,eAAsB,QACrB,IAcA,QAGC;AACD,UAAe,GAAI,YAAY,wBAAU,GAAG;AAAA,IAC3C,KAAK,wBAAwB;AAC5B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAA4B,MAAkC;AAAA,IAC9E;AAAA,IACA,KAAK,yBAAyB;AAC7B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,2BAA2B;AAE5D,aAAOA,SAAQ,IAA6B,MAAkC;AAAA,IAC/E;AAAA,IACA,KAAK,qBAAqB;AACzB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,uBAAuB;AAExD,aAAOA,SAAQ,IAAyB,MAAkC;AAAA,IAC3E;AAAA,IACA,KAAK,cAAc;AAClB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,eAAe;AAEhD,aAAOA,SAAQ,IAAyB,MAAkC;AAAA,IAC3E;AAAA,IACA,KAAK,kBAAkB;AACtB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AAEpD,aAAOA,SAAQ,IAAsB,MAAkC;AAAA,IACxE;AAAA,IACA,KAAK,kBAAkB;AACtB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AAEpD,aAAOA,SAAQ,IAAsB,MAAkC;AAAA,IACxE;AAAA,IACA,KAAK,oBAAoB;AACxB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,sBAAsB;AAEvD,aAAOA,SAAQ,IAAwB,MAAkC;AAAA,IAC1E;AAAA,IACA,KAAK,0BAA0B;AAC9B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAAoB,MAAkC;AAAA,IACtE;AAAA,IACA,KAAK,kBAAkB;AACtB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,0BAA0B;AAE3D,aAAOA,SAAQ,IAAsB,MAAkC;AAAA,IACxE;AAAA,IACA,KAAK,uBAAuB;AAC3B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mCAAmC;AAEpE,aAAOA,SAAQ,IAA2B,MAAkC;AAAA,IAC7E;AAAA,IACA,KAAK,sBAAsB;AAC1B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,wBAAwB;AAEzD,aAAOA,SAAQ,IAA0B,MAAkC;AAAA,IAC5E;AAAA,IACA,KAAK,0BAA0B;AAC9B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAA8B,MAAyB;AAAA,IACvE;AAAA,IACA,KAAK,oBAAoB;AACxB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAAwB,MAAkC;AAAA,IAC1E;AAAA,EACD;AACD;","names":["migrate"]}
@@ -0,0 +1,15 @@
1
+ import type { AwsDataApiPgDatabase } from "./aws-data-api/pg/index.cjs";
2
+ import type { BetterSQLite3Database } from "./better-sqlite3/index.cjs";
3
+ import type { BunSQLiteDatabase } from "./bun-sqlite/index.cjs";
4
+ import type { DrizzleD1Database } from "./d1/index.cjs";
5
+ import type { LibSQLDatabase } from "./libsql/index.cjs";
6
+ import type { MigrationConfig } from "./migrator.cjs";
7
+ import type { MySql2Database } from "./mysql2/index.cjs";
8
+ import type { NeonHttpDatabase } from "./neon-http/index.cjs";
9
+ import type { NeonDatabase } from "./neon-serverless/index.cjs";
10
+ import type { NodePgDatabase } from "./node-postgres/index.cjs";
11
+ import type { PlanetScaleDatabase } from "./planetscale-serverless/index.cjs";
12
+ import type { PostgresJsDatabase } from "./postgres-js/index.cjs";
13
+ import type { TiDBServerlessDatabase } from "./tidb-serverless/index.cjs";
14
+ import type { VercelPgDatabase } from "./vercel-postgres/index.cjs";
15
+ export declare function migrate(db: AwsDataApiPgDatabase<any> | BetterSQLite3Database<any> | BunSQLiteDatabase<any> | DrizzleD1Database<any> | LibSQLDatabase<any> | MySql2Database<any> | NeonHttpDatabase<any> | NeonDatabase<any> | NodePgDatabase<any> | PlanetScaleDatabase<any> | PostgresJsDatabase<any> | VercelPgDatabase<any> | TiDBServerlessDatabase<any>, config: string | MigrationConfig): Promise<void>;
@@ -0,0 +1,15 @@
1
+ import type { AwsDataApiPgDatabase } from "./aws-data-api/pg/index.js";
2
+ import type { BetterSQLite3Database } from "./better-sqlite3/index.js";
3
+ import type { BunSQLiteDatabase } from "./bun-sqlite/index.js";
4
+ import type { DrizzleD1Database } from "./d1/index.js";
5
+ import type { LibSQLDatabase } from "./libsql/index.js";
6
+ import type { MigrationConfig } from "./migrator.js";
7
+ import type { MySql2Database } from "./mysql2/index.js";
8
+ import type { NeonHttpDatabase } from "./neon-http/index.js";
9
+ import type { NeonDatabase } from "./neon-serverless/index.js";
10
+ import type { NodePgDatabase } from "./node-postgres/index.js";
11
+ import type { PlanetScaleDatabase } from "./planetscale-serverless/index.js";
12
+ import type { PostgresJsDatabase } from "./postgres-js/index.js";
13
+ import type { TiDBServerlessDatabase } from "./tidb-serverless/index.js";
14
+ import type { VercelPgDatabase } from "./vercel-postgres/index.js";
15
+ export declare function migrate(db: AwsDataApiPgDatabase<any> | BetterSQLite3Database<any> | BunSQLiteDatabase<any> | DrizzleD1Database<any> | LibSQLDatabase<any> | MySql2Database<any> | NeonHttpDatabase<any> | NeonDatabase<any> | NodePgDatabase<any> | PlanetScaleDatabase<any> | PostgresJsDatabase<any> | VercelPgDatabase<any> | TiDBServerlessDatabase<any>, config: string | MigrationConfig): Promise<void>;
@@ -0,0 +1,61 @@
1
+ import { entityKind } from "./entity.js";
2
+ async function migrate(db, config) {
3
+ switch (db.constructor[entityKind]) {
4
+ case "AwsDataApiPgDatabase": {
5
+ const { migrate: migrate2 } = await import("./aws-data-api/pg/migrator");
6
+ return migrate2(db, config);
7
+ }
8
+ case "BetterSQLite3Database": {
9
+ const { migrate: migrate2 } = await import("./better-sqlite3/migrator");
10
+ return migrate2(db, config);
11
+ }
12
+ case "BunSQLiteDatabase": {
13
+ const { migrate: migrate2 } = await import("./bun-sqlite/migrator");
14
+ return migrate2(db, config);
15
+ }
16
+ case "D1Database": {
17
+ const { migrate: migrate2 } = await import("./d1/migrator");
18
+ return migrate2(db, config);
19
+ }
20
+ case "LibSQLDatabase": {
21
+ const { migrate: migrate2 } = await import("./libsql/migrator");
22
+ return migrate2(db, config);
23
+ }
24
+ case "MySql2Database": {
25
+ const { migrate: migrate2 } = await import("./mysql2/migrator");
26
+ return migrate2(db, config);
27
+ }
28
+ case "NeonHttpDatabase": {
29
+ const { migrate: migrate2 } = await import("./neon-http/migrator");
30
+ return migrate2(db, config);
31
+ }
32
+ case "NeonServerlessDatabase": {
33
+ const { migrate: migrate2 } = await import("./neon-serverless/migrator");
34
+ return migrate2(db, config);
35
+ }
36
+ case "NodePgDatabase": {
37
+ const { migrate: migrate2 } = await import("./node-postgres/migrator");
38
+ return migrate2(db, config);
39
+ }
40
+ case "PlanetScaleDatabase": {
41
+ const { migrate: migrate2 } = await import("./planetscale-serverless/migrator");
42
+ return migrate2(db, config);
43
+ }
44
+ case "PostgresJsDatabase": {
45
+ const { migrate: migrate2 } = await import("./postgres-js/migrator");
46
+ return migrate2(db, config);
47
+ }
48
+ case "TiDBServerlessDatabase": {
49
+ const { migrate: migrate2 } = await import("./tidb-serverless/migrator");
50
+ return migrate2(db, config);
51
+ }
52
+ case "VercelPgDatabase": {
53
+ const { migrate: migrate2 } = await import("./vercel-postgres/migrator");
54
+ return migrate2(db, config);
55
+ }
56
+ }
57
+ }
58
+ export {
59
+ migrate
60
+ };
61
+ //# sourceMappingURL=monomigrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/monomigrator.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { AwsDataApiPgDatabase } from './aws-data-api/pg/index.ts';\nimport type { BetterSQLite3Database } from './better-sqlite3/index.ts';\nimport type { BunSQLiteDatabase } from './bun-sqlite/index.ts';\nimport type { DrizzleD1Database } from './d1/index.ts';\nimport { entityKind } from './entity.ts';\nimport type { LibSQLDatabase } from './libsql/index.ts';\nimport type { MigrationConfig } from './migrator.ts';\nimport type { MySql2Database } 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 { VercelPgDatabase } from './vercel-postgres/index.ts';\n\nexport async function migrate(\n\tdb:\n\t\t| AwsDataApiPgDatabase<any>\n\t\t| BetterSQLite3Database<any>\n\t\t| BunSQLiteDatabase<any>\n\t\t| DrizzleD1Database<any>\n\t\t| LibSQLDatabase<any>\n\t\t| MySql2Database<any>\n\t\t| NeonHttpDatabase<any>\n\t\t| NeonDatabase<any>\n\t\t| NodePgDatabase<any>\n\t\t| PlanetScaleDatabase<any>\n\t\t| PostgresJsDatabase<any>\n\t\t| VercelPgDatabase<any>\n\t\t| TiDBServerlessDatabase<any>,\n\tconfig:\n\t\t| string\n\t\t| MigrationConfig,\n) {\n\tswitch ((<any> db).constructor[entityKind]) {\n\t\tcase 'AwsDataApiPgDatabase': {\n\t\t\tconst { migrate } = await import('./aws-data-api/pg/migrator');\n\n\t\t\treturn migrate(db as AwsDataApiPgDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'BetterSQLite3Database': {\n\t\t\tconst { migrate } = await import('./better-sqlite3/migrator');\n\n\t\t\treturn migrate(db as BetterSQLite3Database, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'BunSQLiteDatabase': {\n\t\t\tconst { migrate } = await import('./bun-sqlite/migrator');\n\n\t\t\treturn migrate(db as BunSQLiteDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'D1Database': {\n\t\t\tconst { migrate } = await import('./d1/migrator');\n\n\t\t\treturn migrate(db as DrizzleD1Database, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'LibSQLDatabase': {\n\t\t\tconst { migrate } = await import('./libsql/migrator');\n\n\t\t\treturn migrate(db as LibSQLDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'MySql2Database': {\n\t\t\tconst { migrate } = await import('./mysql2/migrator');\n\n\t\t\treturn migrate(db as MySql2Database, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'NeonHttpDatabase': {\n\t\t\tconst { migrate } = await import('./neon-http/migrator');\n\n\t\t\treturn migrate(db as NeonHttpDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'NeonServerlessDatabase': {\n\t\t\tconst { migrate } = await import('./neon-serverless/migrator');\n\n\t\t\treturn migrate(db as NeonDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'NodePgDatabase': {\n\t\t\tconst { migrate } = await import('./node-postgres/migrator');\n\n\t\t\treturn migrate(db as NodePgDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'PlanetScaleDatabase': {\n\t\t\tconst { migrate } = await import('./planetscale-serverless/migrator');\n\n\t\t\treturn migrate(db as PlanetScaleDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'PostgresJsDatabase': {\n\t\t\tconst { migrate } = await import('./postgres-js/migrator');\n\n\t\t\treturn migrate(db as PostgresJsDatabase, config as string | MigrationConfig);\n\t\t}\n\t\tcase 'TiDBServerlessDatabase': {\n\t\t\tconst { migrate } = await import('./tidb-serverless/migrator');\n\n\t\t\treturn migrate(db as TiDBServerlessDatabase, config as MigrationConfig);\n\t\t}\n\t\tcase 'VercelPgDatabase': {\n\t\t\tconst { migrate } = await import('./vercel-postgres/migrator');\n\n\t\t\treturn migrate(db as VercelPgDatabase, config as string | MigrationConfig);\n\t\t}\n\t}\n}\n"],"mappings":"AAKA,SAAS,kBAAkB;AAY3B,eAAsB,QACrB,IAcA,QAGC;AACD,UAAe,GAAI,YAAY,UAAU,GAAG;AAAA,IAC3C,KAAK,wBAAwB;AAC5B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAA4B,MAAkC;AAAA,IAC9E;AAAA,IACA,KAAK,yBAAyB;AAC7B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,2BAA2B;AAE5D,aAAOA,SAAQ,IAA6B,MAAkC;AAAA,IAC/E;AAAA,IACA,KAAK,qBAAqB;AACzB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,uBAAuB;AAExD,aAAOA,SAAQ,IAAyB,MAAkC;AAAA,IAC3E;AAAA,IACA,KAAK,cAAc;AAClB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,eAAe;AAEhD,aAAOA,SAAQ,IAAyB,MAAkC;AAAA,IAC3E;AAAA,IACA,KAAK,kBAAkB;AACtB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AAEpD,aAAOA,SAAQ,IAAsB,MAAkC;AAAA,IACxE;AAAA,IACA,KAAK,kBAAkB;AACtB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mBAAmB;AAEpD,aAAOA,SAAQ,IAAsB,MAAkC;AAAA,IACxE;AAAA,IACA,KAAK,oBAAoB;AACxB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,sBAAsB;AAEvD,aAAOA,SAAQ,IAAwB,MAAkC;AAAA,IAC1E;AAAA,IACA,KAAK,0BAA0B;AAC9B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAAoB,MAAkC;AAAA,IACtE;AAAA,IACA,KAAK,kBAAkB;AACtB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,0BAA0B;AAE3D,aAAOA,SAAQ,IAAsB,MAAkC;AAAA,IACxE;AAAA,IACA,KAAK,uBAAuB;AAC3B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,mCAAmC;AAEpE,aAAOA,SAAQ,IAA2B,MAAkC;AAAA,IAC7E;AAAA,IACA,KAAK,sBAAsB;AAC1B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,wBAAwB;AAEzD,aAAOA,SAAQ,IAA0B,MAAkC;AAAA,IAC5E;AAAA,IACA,KAAK,0BAA0B;AAC9B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAA8B,MAAyB;AAAA,IACvE;AAAA,IACA,KAAK,oBAAoB;AACxB,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,4BAA4B;AAE7D,aAAOA,SAAQ,IAAwB,MAAkC;AAAA,IAC1E;AAAA,EACD;AACD;","names":["migrate"]}