drizzle-orm 0.33.0-766f76f → 0.33.0-8948f19

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.
package/monodriver.cjs CHANGED
@@ -31,104 +31,97 @@ __export(monodriver_exports, {
31
31
  drizzle: () => drizzle
32
32
  });
33
33
  module.exports = __toCommonJS(monodriver_exports);
34
- const drizzle = (params) => {
34
+ const importError = (libName) => {
35
+ throw new Error(
36
+ `Please install '${libName}' for Drizzle ORM to connect to database`
37
+ );
38
+ };
39
+ const drizzle = async (params) => {
35
40
  const { client, connection } = params;
36
41
  const drizzleConfig = params;
37
42
  delete drizzleConfig.client;
38
43
  delete drizzleConfig.connection;
39
44
  switch (client) {
40
45
  case "node-postgres": {
41
- const { Pool } = require("pg");
42
- const { drizzle: drizzle2 } = require("./node-postgres");
46
+ const { Pool } = await import("pg").catch(() => importError("pg"));
47
+ const { drizzle: drizzle2 } = await import("./node-postgres");
43
48
  const instance = new Pool(connection);
44
49
  return drizzle2(instance, drizzleConfig);
45
50
  }
46
51
  case "aws-data-api-pg": {
47
- const { RDSDataClient } = require("@aws-sdk/client-rds-data");
48
- const { drizzle: drizzle2 } = require("./aws-data-api/pg");
52
+ const { RDSDataClient } = await import("@aws-sdk/client-rds-data").catch(
53
+ () => importError("@aws-sdk/client-rds-data")
54
+ );
55
+ const { drizzle: drizzle2 } = await import("./aws-data-api/pg");
49
56
  const instance = new RDSDataClient(connection);
50
57
  return drizzle2(instance, drizzleConfig);
51
58
  }
52
59
  case "better-sqlite3": {
53
- const Client = require("better-sqlite3");
60
+ const { default: Client } = await import("better-sqlite3").catch(() => importError("better-sqlite3"));
54
61
  const { filename, options } = connection;
55
- const { drizzle: drizzle2 } = require("./better-sqlite3");
62
+ const { drizzle: drizzle2 } = await import("./better-sqlite3");
56
63
  const instance = new Client(filename, options);
57
64
  return drizzle2(instance, drizzleConfig);
58
65
  }
59
66
  case "bun-sqlite": {
60
- return new Promise((res, rej) => {
61
- import("bun:sqlite").then(({ Database: Client }) => {
62
- try {
63
- const { filename, options } = connection;
64
- const { drizzle: drizzle2 } = require("./bun-sqlite");
65
- const instance = new Client(filename, options);
66
- res(drizzle2(instance, drizzleConfig));
67
- } catch (e) {
68
- rej(e);
69
- }
70
- }).catch((e) => rej(e));
71
- });
67
+ const { Database: Client } = await import("bun:sqlite").catch(() => importError("bun:sqlite"));
68
+ const { filename, options } = connection;
69
+ const { drizzle: drizzle2 } = await import("./bun-sqlite");
70
+ const instance = new Client(filename, options);
71
+ return drizzle2(instance, drizzleConfig);
72
72
  }
73
73
  case "d1": {
74
- const { drizzle: drizzle2 } = require("./d1");
74
+ const { drizzle: drizzle2 } = await import("./d1");
75
75
  return drizzle2(connection, drizzleConfig);
76
76
  }
77
77
  case "libsql": {
78
- const { createClient } = require("@libsql/client");
79
- const { drizzle: drizzle2 } = require("./libsql");
78
+ const { createClient } = await import("@libsql/client").catch(() => importError("@libsql/client"));
79
+ const { drizzle: drizzle2 } = await import("./libsql");
80
80
  const instance = createClient(connection);
81
81
  return drizzle2(instance, drizzleConfig);
82
82
  }
83
83
  case "mysql2": {
84
- const { createConnection } = require("mysql2/promise");
85
- return new Promise((res, rej) => {
86
- createConnection(connection).then((instance) => {
87
- try {
88
- const { drizzle: drizzle2 } = require("./mysql2");
89
- res(drizzle2(instance, drizzleConfig));
90
- } catch (e) {
91
- rej(e);
92
- }
93
- }).catch((e) => rej(e));
94
- });
84
+ const { createConnection } = await import("mysql2/promise").catch(() => importError("mysql2/promise"));
85
+ const instance = await createConnection(connection);
86
+ const { drizzle: drizzle2 } = await import("./mysql2");
87
+ return drizzle2(instance, drizzleConfig);
95
88
  }
96
89
  case "neon-http": {
97
- const { neon } = require("@neondatabase/serverless");
90
+ const { neon } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
98
91
  const { connectionString, options } = connection;
99
- const { drizzle: drizzle2 } = require("./neon-http");
92
+ const { drizzle: drizzle2 } = await import("./neon-http");
100
93
  const instance = neon(connectionString, options);
101
94
  return drizzle2(instance, drizzleConfig);
102
95
  }
103
96
  case "neon-serverless": {
104
- const { Pool } = require("@neondatabase/serverless");
105
- const { drizzle: drizzle2 } = require("./neon-serverless");
97
+ const { Pool } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
98
+ const { drizzle: drizzle2 } = await import("./neon-serverless");
106
99
  const instance = new Pool(connection);
107
100
  return drizzle2(instance, drizzleConfig);
108
101
  }
109
102
  case "planetscale": {
110
- const { Client } = require("@planetscale/database");
111
- const { drizzle: drizzle2 } = require("./planetscale-serverless");
103
+ const { Client } = await import("@planetscale/database").catch(() => importError("@planetscale/database"));
104
+ const { drizzle: drizzle2 } = await import("./planetscale-serverless");
112
105
  const instance = new Client(
113
106
  connection
114
107
  );
115
108
  return drizzle2(instance, drizzleConfig);
116
109
  }
117
110
  case "postgres-js": {
118
- const client2 = require("postgres");
119
- const { drizzle: drizzle2 } = require("./postgres-js");
111
+ const { default: client2 } = await import("postgres").catch(() => importError("postgres"));
112
+ const { drizzle: drizzle2 } = await import("./postgres-js");
120
113
  const instance = client2(connection);
121
114
  return drizzle2(instance, drizzleConfig);
122
115
  }
123
116
  case "tidb-serverless": {
124
- const { connect } = require("@tidbcloud/serverless");
125
- const { drizzle: drizzle2 } = require("./tidb-serverless");
117
+ const { connect } = await import("@tidbcloud/serverless").catch(() => importError("@tidbcloud/serverless"));
118
+ const { drizzle: drizzle2 } = await import("./tidb-serverless");
126
119
  const instance = connect(connection);
127
120
  return drizzle2(instance, drizzleConfig);
128
121
  }
129
122
  case "vercel-postgres": {
130
- const { sql } = require("@vercel/postgres");
131
- const { drizzle: drizzle2 } = require("./vercel-postgres");
123
+ const { sql } = await import("@vercel/postgres").catch(() => importError("@vercel/postgres"));
124
+ const { drizzle: drizzle2 } = await import("./vercel-postgres");
132
125
  return drizzle2(sql, drizzleConfig);
133
126
  }
134
127
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { 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\tfilename?: string;\n\toptions?: BunSqliteDatabaseOptions;\n};\n\ntype BetterSQLite3DatabaseConfig = {\n\tfilename?: string | Buffer;\n\toptions?: BetterSQLite3Options;\n};\n\ntype MonodriverNeonHttpConfig = {\n\tconnectionString: string;\n\toptions?: NeonHttpConfig<boolean, boolean>;\n};\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: Promise<MySql2Database<TSchema>>;\n\t'tidb-serverless': TiDBServerlessDatabase<TSchema>;\n\tlibsql: LibSQLDatabase<TSchema>;\n\td1: DrizzleD1Database<TSchema>;\n\t'bun-sqlite': Promise<BunSQLiteDatabase<TSchema>>;\n\t'better-sqlite3': BetterSQLite3Database<TSchema>;\n};\n\ntype InitializerParams<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> =\n\t| ({\n\t\tclient: 'node-postgres';\n\t\tconnection: NodePGPoolConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'postgres-js';\n\t\tconnection: PostgresJSOptions<Record<string, PostgresJSPostgresType>>;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-serverless';\n\t\tconnection: NeonServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-http';\n\t\tconnection: MonodriverNeonHttpConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'vercel-postgres';\n\t\tconnection: VercelPool;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'aws-data-api-pg';\n\t\tconnection: RDSConfig;\n\t} & DrizzleAwsDataApiPgConfig<TSchema>)\n\t| ({\n\t\tclient: 'planetscale';\n\t\tconnection: PlanetscaleConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'mysql2';\n\t\tconnection: Mysql2Config;\n\t} & MySql2DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'tidb-serverless';\n\t\tconnection: TiDBServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'libsql';\n\t\tconnection: LibsqlConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'd1';\n\t\tconnection: D1Database;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'bun-sqlite';\n\t\tconnection: BunSqliteDatabaseConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'better-sqlite3';\n\t\tconnection: BetterSQLite3DatabaseConfig;\n\t} & DrizzleConfig<TSchema>);\n\ntype DetermineClient<\n\tTParams extends InitializerParams<any>,\n> = ClientDrizzleInstanceMap<TParams['schema']>[TParams['client']];\n\nexport const drizzle = <\n\tTSchema extends Record<string, any>,\n\tTParams extends InitializerParams<TSchema>,\n>(params: TParams): DetermineClient<TParams> => {\n\tconst { client, connection } = params;\n\tconst drizzleConfig = params as DrizzleConfig;\n\tdelete (<any> drizzleConfig).client;\n\tdelete (<any> drizzleConfig).connection;\n\n\tswitch (client) {\n\t\tcase 'node-postgres': {\n\t\t\tconst { Pool } = require('pg') as typeof import('pg');\n\t\t\tconst { drizzle } = require('./node-postgres') as typeof 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 } = require('@aws-sdk/client-rds-data') as typeof import('@aws-sdk/client-rds-data');\n\t\t\tconst { drizzle } = require('./aws-data-api/pg') as typeof import('./aws-data-api/pg');\n\t\t\tconst instance = new RDSDataClient(connection);\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 Client = require('better-sqlite3') as typeof import('better-sqlite3');\n\t\t\tconst { filename, options } = connection as BetterSQLite3DatabaseConfig;\n\t\t\tconst { drizzle } = require('./better-sqlite3') as typeof import('./better-sqlite3');\n\t\t\tconst instance = new Client(filename, options);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'bun-sqlite': {\n\t\t\treturn new Promise((res, rej) => {\n\t\t\t\timport('bun:sqlite').then(({ Database: Client }) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { filename, options } = connection as BunSqliteDatabaseConfig;\n\t\t\t\t\t\tconst { drizzle } = require('./bun-sqlite') as typeof import('./bun-sqlite');\n\t\t\t\t\t\tconst instance = new Client(filename, options);\n\n\t\t\t\t\t\tres(drizzle(instance, drizzleConfig) as any);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\trej(e);\n\t\t\t\t\t}\n\t\t\t\t}).catch((e) => rej(e));\n\t\t\t}) as any;\n\t\t}\n\t\tcase 'd1': {\n\t\t\tconst { drizzle } = require('./d1') as typeof 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 } = require('@libsql/client') as typeof import('@libsql/client');\n\t\t\tconst { drizzle } = require('./libsql') as typeof 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 } = require('mysql2/promise') as typeof import('mysql2/promise');\n\n\t\t\treturn new Promise((res, rej) => {\n\t\t\t\tcreateConnection(connection as Mysql2Config).then((instance) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { drizzle } = require('./mysql2') as typeof import('./mysql2');\n\t\t\t\t\t\tres(drizzle(instance, drizzleConfig as MySql2DrizzleConfig) as any);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\trej(e);\n\t\t\t\t\t}\n\t\t\t\t}).catch((e) => rej(e));\n\t\t\t}) as any;\n\t\t}\n\t\tcase 'neon-http': {\n\t\t\tconst { neon } = require('@neondatabase/serverless') as typeof import('@neondatabase/serverless');\n\t\t\tconst { connectionString, options } = connection as MonodriverNeonHttpConfig;\n\t\t\tconst { drizzle } = require('./neon-http') as typeof 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 } = require('@neondatabase/serverless') as typeof import('@neondatabase/serverless');\n\t\t\tconst { drizzle } = require('./neon-serverless') as typeof 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 } = require('@planetscale/database') as typeof import('@planetscale/database');\n\t\t\tconst { drizzle } = require('./planetscale-serverless') as typeof 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 client = require('postgres') as typeof import('postgres');\n\t\t\tconst { drizzle } = require('./postgres-js') as typeof 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 } = require('@tidbcloud/serverless') as typeof import('@tidbcloud/serverless');\n\t\t\tconst { drizzle } = require('./tidb-serverless') as typeof 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 } = require('@vercel/postgres') as typeof import('@vercel/postgres');\n\t\t\tconst { drizzle } = require('./vercel-postgres') as typeof import('./vercel-postgres');\n\n\t\t\treturn drizzle(sql, drizzleConfig) as any;\n\t\t}\n\t}\n};\n"],"mappings":"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","names":["drizzle","client"]}
1
+ {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { 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\tfilename?: string;\n\toptions?: BunSqliteDatabaseOptions;\n};\n\ntype BetterSQLite3DatabaseConfig = {\n\tfilename?: string | Buffer;\n\toptions?: BetterSQLite3Options;\n};\n\ntype MonodriverNeonHttpConfig = {\n\tconnectionString: string;\n\toptions?: NeonHttpConfig<boolean, boolean>;\n};\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\tTSchema extends Record<string, unknown> = Record<string, never>,\n> =\n\t| ({\n\t\tclient: 'node-postgres';\n\t\tconnection: NodePGPoolConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'postgres-js';\n\t\tconnection: PostgresJSOptions<Record<string, PostgresJSPostgresType>>;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-serverless';\n\t\tconnection: NeonServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-http';\n\t\tconnection: MonodriverNeonHttpConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'vercel-postgres';\n\t\tconnection: VercelPool;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'aws-data-api-pg';\n\t\tconnection: RDSConfig;\n\t} & DrizzleAwsDataApiPgConfig<TSchema>)\n\t| ({\n\t\tclient: 'planetscale';\n\t\tconnection: PlanetscaleConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'mysql2';\n\t\tconnection: Mysql2Config;\n\t} & MySql2DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'tidb-serverless';\n\t\tconnection: TiDBServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'libsql';\n\t\tconnection: LibsqlConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'd1';\n\t\tconnection: D1Database;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'bun-sqlite';\n\t\tconnection: BunSqliteDatabaseConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'better-sqlite3';\n\t\tconnection: BetterSQLite3DatabaseConfig;\n\t} & DrizzleConfig<TSchema>);\n\ntype DetermineClient<\n\tTParams extends InitializerParams<any>,\n> = ClientDrizzleInstanceMap<TParams['schema']>[TParams['client']];\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\nexport const drizzle = async <\n\tTSchema extends Record<string, any>,\n\tTParams extends InitializerParams<TSchema>,\n>(params: TParams): Promise<DetermineClient<TParams>> => {\n\tconst { client, connection } = params;\n\tconst drizzleConfig = params as DrizzleConfig;\n\tdelete (<any> drizzleConfig).client;\n\tdelete (<any> drizzleConfig).connection;\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);\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 { filename, options } = connection as BetterSQLite3DatabaseConfig;\n\t\t\tconst { drizzle } = await import('./better-sqlite3');\n\t\t\tconst instance = new Client(filename, options);\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 { filename, options } = connection as BunSqliteDatabaseConfig;\n\t\t\tconst { drizzle } = await import('./bun-sqlite');\n\t\t\tconst instance = new Client(filename, options);\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA+IA,MAAM,cAAc,CAAC,YAAoB;AACxC,QAAM,IAAI;AAAA,IACT,mBAAmB,OAAO;AAAA,EAC3B;AACD;AAEO,MAAM,UAAU,OAGrB,WAAuD;AACxD,QAAM,EAAE,QAAQ,WAAW,IAAI;AAC/B,QAAM,gBAAgB;AACtB,SAAc,cAAe;AAC7B,SAAc,cAAe;AAE7B,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,UAAU;AAE7C,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,UAAU,QAAQ,IAAI;AAC9B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,kBAAkB;AACnD,YAAM,WAAW,IAAI,OAAO,UAAU,OAAO;AAE7C,aAAOA,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,UAAU,QAAQ,IAAI;AAC9B,YAAM,EAAE,SAAAA,SAAQ,IAAI,MAAM,OAAO,cAAc;AAC/C,YAAM,WAAW,IAAI,OAAO,UAAU,OAAO;AAE7C,aAAOA,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,SAASC,QAAO,IAAI,MAAM,OAAO,UAAU,EAAE,MAAM,MAAM,YAAY,UAAU,CAAC;AACxF,YAAM,EAAE,SAAAD,SAAQ,IAAI,MAAM,OAAO,eAAe;AAChD,YAAM,WAAWC,QAAO,UAAuE;AAE/F,aAAOD,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;AACD;","names":["drizzle","client"]}
package/monodriver.d.cts CHANGED
@@ -65,11 +65,11 @@ type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
65
65
  'vercel-postgres': VercelPgDatabase<TSchema>;
66
66
  'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;
67
67
  planetscale: PlanetScaleDatabase<TSchema>;
68
- mysql2: Promise<MySql2Database<TSchema>>;
68
+ mysql2: MySql2Database<TSchema>;
69
69
  'tidb-serverless': TiDBServerlessDatabase<TSchema>;
70
70
  libsql: LibSQLDatabase<TSchema>;
71
71
  d1: DrizzleD1Database<TSchema>;
72
- 'bun-sqlite': Promise<BunSQLiteDatabase<TSchema>>;
72
+ 'bun-sqlite': BunSQLiteDatabase<TSchema>;
73
73
  'better-sqlite3': BetterSQLite3Database<TSchema>;
74
74
  };
75
75
  type InitializerParams<TSchema extends Record<string, unknown> = Record<string, never>> = ({
@@ -113,5 +113,5 @@ type InitializerParams<TSchema extends Record<string, unknown> = Record<string,
113
113
  connection: BetterSQLite3DatabaseConfig;
114
114
  } & DrizzleConfig<TSchema>);
115
115
  type DetermineClient<TParams extends InitializerParams<any>> = ClientDrizzleInstanceMap<TParams['schema']>[TParams['client']];
116
- export declare const drizzle: <TSchema extends Record<string, any>, TParams extends InitializerParams<TSchema>>(params: TParams) => DetermineClient<TParams>;
116
+ export declare const drizzle: <TSchema extends Record<string, any>, TParams extends InitializerParams<TSchema>>(params: TParams) => Promise<DetermineClient<TParams>>;
117
117
  export {};
package/monodriver.d.ts CHANGED
@@ -65,11 +65,11 @@ type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
65
65
  'vercel-postgres': VercelPgDatabase<TSchema>;
66
66
  'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;
67
67
  planetscale: PlanetScaleDatabase<TSchema>;
68
- mysql2: Promise<MySql2Database<TSchema>>;
68
+ mysql2: MySql2Database<TSchema>;
69
69
  'tidb-serverless': TiDBServerlessDatabase<TSchema>;
70
70
  libsql: LibSQLDatabase<TSchema>;
71
71
  d1: DrizzleD1Database<TSchema>;
72
- 'bun-sqlite': Promise<BunSQLiteDatabase<TSchema>>;
72
+ 'bun-sqlite': BunSQLiteDatabase<TSchema>;
73
73
  'better-sqlite3': BetterSQLite3Database<TSchema>;
74
74
  };
75
75
  type InitializerParams<TSchema extends Record<string, unknown> = Record<string, never>> = ({
@@ -113,5 +113,5 @@ type InitializerParams<TSchema extends Record<string, unknown> = Record<string,
113
113
  connection: BetterSQLite3DatabaseConfig;
114
114
  } & DrizzleConfig<TSchema>);
115
115
  type DetermineClient<TParams extends InitializerParams<any>> = ClientDrizzleInstanceMap<TParams['schema']>[TParams['client']];
116
- export declare const drizzle: <TSchema extends Record<string, any>, TParams extends InitializerParams<TSchema>>(params: TParams) => DetermineClient<TParams>;
116
+ export declare const drizzle: <TSchema extends Record<string, any>, TParams extends InitializerParams<TSchema>>(params: TParams) => Promise<DetermineClient<TParams>>;
117
117
  export {};
package/monodriver.js CHANGED
@@ -1,101 +1,94 @@
1
- const drizzle = (params) => {
1
+ const importError = (libName) => {
2
+ throw new Error(
3
+ `Please install '${libName}' for Drizzle ORM to connect to database`
4
+ );
5
+ };
6
+ const drizzle = async (params) => {
2
7
  const { client, connection } = params;
3
8
  const drizzleConfig = params;
4
9
  delete drizzleConfig.client;
5
10
  delete drizzleConfig.connection;
6
11
  switch (client) {
7
12
  case "node-postgres": {
8
- const { Pool } = require("pg");
9
- const { drizzle: drizzle2 } = require("./node-postgres");
13
+ const { Pool } = await import("pg").catch(() => importError("pg"));
14
+ const { drizzle: drizzle2 } = await import("./node-postgres");
10
15
  const instance = new Pool(connection);
11
16
  return drizzle2(instance, drizzleConfig);
12
17
  }
13
18
  case "aws-data-api-pg": {
14
- const { RDSDataClient } = require("@aws-sdk/client-rds-data");
15
- const { drizzle: drizzle2 } = require("./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");
16
23
  const instance = new RDSDataClient(connection);
17
24
  return drizzle2(instance, drizzleConfig);
18
25
  }
19
26
  case "better-sqlite3": {
20
- const Client = require("better-sqlite3");
27
+ const { default: Client } = await import("better-sqlite3").catch(() => importError("better-sqlite3"));
21
28
  const { filename, options } = connection;
22
- const { drizzle: drizzle2 } = require("./better-sqlite3");
29
+ const { drizzle: drizzle2 } = await import("./better-sqlite3");
23
30
  const instance = new Client(filename, options);
24
31
  return drizzle2(instance, drizzleConfig);
25
32
  }
26
33
  case "bun-sqlite": {
27
- return new Promise((res, rej) => {
28
- import("bun:sqlite").then(({ Database: Client }) => {
29
- try {
30
- const { filename, options } = connection;
31
- const { drizzle: drizzle2 } = require("./bun-sqlite");
32
- const instance = new Client(filename, options);
33
- res(drizzle2(instance, drizzleConfig));
34
- } catch (e) {
35
- rej(e);
36
- }
37
- }).catch((e) => rej(e));
38
- });
34
+ const { Database: Client } = await import("bun:sqlite").catch(() => importError("bun:sqlite"));
35
+ const { filename, options } = connection;
36
+ const { drizzle: drizzle2 } = await import("./bun-sqlite");
37
+ const instance = new Client(filename, options);
38
+ return drizzle2(instance, drizzleConfig);
39
39
  }
40
40
  case "d1": {
41
- const { drizzle: drizzle2 } = require("./d1");
41
+ const { drizzle: drizzle2 } = await import("./d1");
42
42
  return drizzle2(connection, drizzleConfig);
43
43
  }
44
44
  case "libsql": {
45
- const { createClient } = require("@libsql/client");
46
- const { drizzle: drizzle2 } = require("./libsql");
45
+ const { createClient } = await import("@libsql/client").catch(() => importError("@libsql/client"));
46
+ const { drizzle: drizzle2 } = await import("./libsql");
47
47
  const instance = createClient(connection);
48
48
  return drizzle2(instance, drizzleConfig);
49
49
  }
50
50
  case "mysql2": {
51
- const { createConnection } = require("mysql2/promise");
52
- return new Promise((res, rej) => {
53
- createConnection(connection).then((instance) => {
54
- try {
55
- const { drizzle: drizzle2 } = require("./mysql2");
56
- res(drizzle2(instance, drizzleConfig));
57
- } catch (e) {
58
- rej(e);
59
- }
60
- }).catch((e) => rej(e));
61
- });
51
+ const { createConnection } = await import("mysql2/promise").catch(() => importError("mysql2/promise"));
52
+ const instance = await createConnection(connection);
53
+ const { drizzle: drizzle2 } = await import("./mysql2");
54
+ return drizzle2(instance, drizzleConfig);
62
55
  }
63
56
  case "neon-http": {
64
- const { neon } = require("@neondatabase/serverless");
57
+ const { neon } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
65
58
  const { connectionString, options } = connection;
66
- const { drizzle: drizzle2 } = require("./neon-http");
59
+ const { drizzle: drizzle2 } = await import("./neon-http");
67
60
  const instance = neon(connectionString, options);
68
61
  return drizzle2(instance, drizzleConfig);
69
62
  }
70
63
  case "neon-serverless": {
71
- const { Pool } = require("@neondatabase/serverless");
72
- const { drizzle: drizzle2 } = require("./neon-serverless");
64
+ const { Pool } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
65
+ const { drizzle: drizzle2 } = await import("./neon-serverless");
73
66
  const instance = new Pool(connection);
74
67
  return drizzle2(instance, drizzleConfig);
75
68
  }
76
69
  case "planetscale": {
77
- const { Client } = require("@planetscale/database");
78
- const { drizzle: drizzle2 } = require("./planetscale-serverless");
70
+ const { Client } = await import("@planetscale/database").catch(() => importError("@planetscale/database"));
71
+ const { drizzle: drizzle2 } = await import("./planetscale-serverless");
79
72
  const instance = new Client(
80
73
  connection
81
74
  );
82
75
  return drizzle2(instance, drizzleConfig);
83
76
  }
84
77
  case "postgres-js": {
85
- const client2 = require("postgres");
86
- const { drizzle: drizzle2 } = require("./postgres-js");
78
+ const { default: client2 } = await import("postgres").catch(() => importError("postgres"));
79
+ const { drizzle: drizzle2 } = await import("./postgres-js");
87
80
  const instance = client2(connection);
88
81
  return drizzle2(instance, drizzleConfig);
89
82
  }
90
83
  case "tidb-serverless": {
91
- const { connect } = require("@tidbcloud/serverless");
92
- const { drizzle: drizzle2 } = require("./tidb-serverless");
84
+ const { connect } = await import("@tidbcloud/serverless").catch(() => importError("@tidbcloud/serverless"));
85
+ const { drizzle: drizzle2 } = await import("./tidb-serverless");
93
86
  const instance = connect(connection);
94
87
  return drizzle2(instance, drizzleConfig);
95
88
  }
96
89
  case "vercel-postgres": {
97
- const { sql } = require("@vercel/postgres");
98
- const { drizzle: drizzle2 } = require("./vercel-postgres");
90
+ const { sql } = await import("@vercel/postgres").catch(() => importError("@vercel/postgres"));
91
+ const { drizzle: drizzle2 } = await import("./vercel-postgres");
99
92
  return drizzle2(sql, drizzleConfig);
100
93
  }
101
94
  }
package/monodriver.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { 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\tfilename?: string;\n\toptions?: BunSqliteDatabaseOptions;\n};\n\ntype BetterSQLite3DatabaseConfig = {\n\tfilename?: string | Buffer;\n\toptions?: BetterSQLite3Options;\n};\n\ntype MonodriverNeonHttpConfig = {\n\tconnectionString: string;\n\toptions?: NeonHttpConfig<boolean, boolean>;\n};\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: Promise<MySql2Database<TSchema>>;\n\t'tidb-serverless': TiDBServerlessDatabase<TSchema>;\n\tlibsql: LibSQLDatabase<TSchema>;\n\td1: DrizzleD1Database<TSchema>;\n\t'bun-sqlite': Promise<BunSQLiteDatabase<TSchema>>;\n\t'better-sqlite3': BetterSQLite3Database<TSchema>;\n};\n\ntype InitializerParams<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> =\n\t| ({\n\t\tclient: 'node-postgres';\n\t\tconnection: NodePGPoolConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'postgres-js';\n\t\tconnection: PostgresJSOptions<Record<string, PostgresJSPostgresType>>;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-serverless';\n\t\tconnection: NeonServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-http';\n\t\tconnection: MonodriverNeonHttpConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'vercel-postgres';\n\t\tconnection: VercelPool;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'aws-data-api-pg';\n\t\tconnection: RDSConfig;\n\t} & DrizzleAwsDataApiPgConfig<TSchema>)\n\t| ({\n\t\tclient: 'planetscale';\n\t\tconnection: PlanetscaleConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'mysql2';\n\t\tconnection: Mysql2Config;\n\t} & MySql2DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'tidb-serverless';\n\t\tconnection: TiDBServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'libsql';\n\t\tconnection: LibsqlConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'd1';\n\t\tconnection: D1Database;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'bun-sqlite';\n\t\tconnection: BunSqliteDatabaseConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'better-sqlite3';\n\t\tconnection: BetterSQLite3DatabaseConfig;\n\t} & DrizzleConfig<TSchema>);\n\ntype DetermineClient<\n\tTParams extends InitializerParams<any>,\n> = ClientDrizzleInstanceMap<TParams['schema']>[TParams['client']];\n\nexport const drizzle = <\n\tTSchema extends Record<string, any>,\n\tTParams extends InitializerParams<TSchema>,\n>(params: TParams): DetermineClient<TParams> => {\n\tconst { client, connection } = params;\n\tconst drizzleConfig = params as DrizzleConfig;\n\tdelete (<any> drizzleConfig).client;\n\tdelete (<any> drizzleConfig).connection;\n\n\tswitch (client) {\n\t\tcase 'node-postgres': {\n\t\t\tconst { Pool } = require('pg') as typeof import('pg');\n\t\t\tconst { drizzle } = require('./node-postgres') as typeof 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 } = require('@aws-sdk/client-rds-data') as typeof import('@aws-sdk/client-rds-data');\n\t\t\tconst { drizzle } = require('./aws-data-api/pg') as typeof import('./aws-data-api/pg');\n\t\t\tconst instance = new RDSDataClient(connection);\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 Client = require('better-sqlite3') as typeof import('better-sqlite3');\n\t\t\tconst { filename, options } = connection as BetterSQLite3DatabaseConfig;\n\t\t\tconst { drizzle } = require('./better-sqlite3') as typeof import('./better-sqlite3');\n\t\t\tconst instance = new Client(filename, options);\n\n\t\t\treturn drizzle(instance, drizzleConfig) as any;\n\t\t}\n\t\tcase 'bun-sqlite': {\n\t\t\treturn new Promise((res, rej) => {\n\t\t\t\timport('bun:sqlite').then(({ Database: Client }) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { filename, options } = connection as BunSqliteDatabaseConfig;\n\t\t\t\t\t\tconst { drizzle } = require('./bun-sqlite') as typeof import('./bun-sqlite');\n\t\t\t\t\t\tconst instance = new Client(filename, options);\n\n\t\t\t\t\t\tres(drizzle(instance, drizzleConfig) as any);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\trej(e);\n\t\t\t\t\t}\n\t\t\t\t}).catch((e) => rej(e));\n\t\t\t}) as any;\n\t\t}\n\t\tcase 'd1': {\n\t\t\tconst { drizzle } = require('./d1') as typeof 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 } = require('@libsql/client') as typeof import('@libsql/client');\n\t\t\tconst { drizzle } = require('./libsql') as typeof 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 } = require('mysql2/promise') as typeof import('mysql2/promise');\n\n\t\t\treturn new Promise((res, rej) => {\n\t\t\t\tcreateConnection(connection as Mysql2Config).then((instance) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { drizzle } = require('./mysql2') as typeof import('./mysql2');\n\t\t\t\t\t\tres(drizzle(instance, drizzleConfig as MySql2DrizzleConfig) as any);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\trej(e);\n\t\t\t\t\t}\n\t\t\t\t}).catch((e) => rej(e));\n\t\t\t}) as any;\n\t\t}\n\t\tcase 'neon-http': {\n\t\t\tconst { neon } = require('@neondatabase/serverless') as typeof import('@neondatabase/serverless');\n\t\t\tconst { connectionString, options } = connection as MonodriverNeonHttpConfig;\n\t\t\tconst { drizzle } = require('./neon-http') as typeof 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 } = require('@neondatabase/serverless') as typeof import('@neondatabase/serverless');\n\t\t\tconst { drizzle } = require('./neon-serverless') as typeof 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 } = require('@planetscale/database') as typeof import('@planetscale/database');\n\t\t\tconst { drizzle } = require('./planetscale-serverless') as typeof 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 client = require('postgres') as typeof import('postgres');\n\t\t\tconst { drizzle } = require('./postgres-js') as typeof 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 } = require('@tidbcloud/serverless') as typeof import('@tidbcloud/serverless');\n\t\t\tconst { drizzle } = require('./tidb-serverless') as typeof 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 } = require('@vercel/postgres') as typeof import('@vercel/postgres');\n\t\t\tconst { drizzle } = require('./vercel-postgres') as typeof import('./vercel-postgres');\n\n\t\t\treturn drizzle(sql, drizzleConfig) as any;\n\t\t}\n\t}\n};\n"],"mappings":"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","names":["drizzle","client"]}
1
+ {"version":3,"sources":["../src/monodriver.ts"],"sourcesContent":["/* eslint-disable import/extensions */\nimport type { 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\tfilename?: string;\n\toptions?: BunSqliteDatabaseOptions;\n};\n\ntype BetterSQLite3DatabaseConfig = {\n\tfilename?: string | Buffer;\n\toptions?: BetterSQLite3Options;\n};\n\ntype MonodriverNeonHttpConfig = {\n\tconnectionString: string;\n\toptions?: NeonHttpConfig<boolean, boolean>;\n};\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\tTSchema extends Record<string, unknown> = Record<string, never>,\n> =\n\t| ({\n\t\tclient: 'node-postgres';\n\t\tconnection: NodePGPoolConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'postgres-js';\n\t\tconnection: PostgresJSOptions<Record<string, PostgresJSPostgresType>>;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-serverless';\n\t\tconnection: NeonServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'neon-http';\n\t\tconnection: MonodriverNeonHttpConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'vercel-postgres';\n\t\tconnection: VercelPool;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'aws-data-api-pg';\n\t\tconnection: RDSConfig;\n\t} & DrizzleAwsDataApiPgConfig<TSchema>)\n\t| ({\n\t\tclient: 'planetscale';\n\t\tconnection: PlanetscaleConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'mysql2';\n\t\tconnection: Mysql2Config;\n\t} & MySql2DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'tidb-serverless';\n\t\tconnection: TiDBServerlessConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'libsql';\n\t\tconnection: LibsqlConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'd1';\n\t\tconnection: D1Database;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'bun-sqlite';\n\t\tconnection: BunSqliteDatabaseConfig;\n\t} & DrizzleConfig<TSchema>)\n\t| ({\n\t\tclient: 'better-sqlite3';\n\t\tconnection: BetterSQLite3DatabaseConfig;\n\t} & DrizzleConfig<TSchema>);\n\ntype DetermineClient<\n\tTParams extends InitializerParams<any>,\n> = ClientDrizzleInstanceMap<TParams['schema']>[TParams['client']];\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\nexport const drizzle = async <\n\tTSchema extends Record<string, any>,\n\tTParams extends InitializerParams<TSchema>,\n>(params: TParams): Promise<DetermineClient<TParams>> => {\n\tconst { client, connection } = params;\n\tconst drizzleConfig = params as DrizzleConfig;\n\tdelete (<any> drizzleConfig).client;\n\tdelete (<any> drizzleConfig).connection;\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);\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 { filename, options } = connection as BetterSQLite3DatabaseConfig;\n\t\t\tconst { drizzle } = await import('./better-sqlite3');\n\t\t\tconst instance = new Client(filename, options);\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 { filename, options } = connection as BunSqliteDatabaseConfig;\n\t\t\tconst { drizzle } = await import('./bun-sqlite');\n\t\t\tconst instance = new Client(filename, options);\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"],"mappings":"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","names":["drizzle","client"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "0.33.0-766f76f",
3
+ "version": "0.33.0-8948f19",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
package/version.cjs CHANGED
@@ -26,7 +26,7 @@ __export(version_exports, {
26
26
  module.exports = __toCommonJS(version_exports);
27
27
 
28
28
  // package.json
29
- var version = "0.33.0-766f76f";
29
+ var version = "0.33.0-8948f19";
30
30
 
31
31
  // src/version.ts
32
32
  var compatibilityVersion = 7;
package/version.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.33.0-766f76f";
1
+ var version = "0.33.0-8948f19";
2
2
 
3
3
  declare const compatibilityVersion = 7;
4
4
 
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.33.0-766f76f";
1
+ var version = "0.33.0-8948f19";
2
2
 
3
3
  declare const compatibilityVersion = 7;
4
4
 
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.33.0-766f76f";
2
+ var version = "0.33.0-8948f19";
3
3
 
4
4
  // src/version.ts
5
5
  var compatibilityVersion = 7;