drizzle-orm 0.33.0-50ebd0a → 0.33.0-5b9600e

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 (68) 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/index.cjs +2 -0
  4. package/index.cjs.map +1 -1
  5. package/index.d.cts +1 -0
  6. package/index.d.ts +1 -0
  7. package/index.js +1 -0
  8. package/index.js.map +1 -1
  9. package/monodriver.cjs +130 -0
  10. package/monodriver.cjs.map +1 -0
  11. package/monodriver.d.cts +117 -0
  12. package/monodriver.d.ts +117 -0
  13. package/monodriver.js +96 -0
  14. package/monodriver.js.map +1 -0
  15. package/mysql-core/db.cjs +4 -0
  16. package/mysql-core/db.cjs.map +1 -1
  17. package/mysql-core/db.d.cts +4 -1
  18. package/mysql-core/db.d.ts +4 -1
  19. package/mysql-core/db.js +4 -0
  20. package/mysql-core/db.js.map +1 -1
  21. package/mysql-core/query-builders/count.cjs +74 -0
  22. package/mysql-core/query-builders/count.cjs.map +1 -0
  23. package/mysql-core/query-builders/count.d.cts +30 -0
  24. package/mysql-core/query-builders/count.d.ts +30 -0
  25. package/mysql-core/query-builders/count.js +50 -0
  26. package/mysql-core/query-builders/count.js.map +1 -0
  27. package/operations.cjs.map +1 -1
  28. package/package.json +97 -61
  29. package/pg-core/columns/index.cjs +0 -2
  30. package/pg-core/columns/index.cjs.map +1 -1
  31. package/pg-core/columns/index.d.cts +0 -1
  32. package/pg-core/columns/index.d.ts +0 -1
  33. package/pg-core/columns/index.js +0 -1
  34. package/pg-core/columns/index.js.map +1 -1
  35. package/pg-core/db.cjs +4 -0
  36. package/pg-core/db.cjs.map +1 -1
  37. package/pg-core/db.d.cts +4 -1
  38. package/pg-core/db.d.ts +4 -1
  39. package/pg-core/db.js +4 -0
  40. package/pg-core/db.js.map +1 -1
  41. package/pg-core/query-builders/count.cjs +74 -0
  42. package/pg-core/query-builders/count.cjs.map +1 -0
  43. package/pg-core/query-builders/count.d.cts +29 -0
  44. package/pg-core/query-builders/count.d.ts +29 -0
  45. package/pg-core/query-builders/count.js +50 -0
  46. package/pg-core/query-builders/count.js.map +1 -0
  47. package/sqlite-core/db.cjs +4 -0
  48. package/sqlite-core/db.cjs.map +1 -1
  49. package/sqlite-core/db.d.cts +4 -1
  50. package/sqlite-core/db.d.ts +4 -1
  51. package/sqlite-core/db.js +4 -0
  52. package/sqlite-core/db.js.map +1 -1
  53. package/sqlite-core/query-builders/count.cjs +72 -0
  54. package/sqlite-core/query-builders/count.cjs.map +1 -0
  55. package/sqlite-core/query-builders/count.d.cts +30 -0
  56. package/sqlite-core/query-builders/count.d.ts +30 -0
  57. package/sqlite-core/query-builders/count.js +48 -0
  58. package/sqlite-core/query-builders/count.js.map +1 -0
  59. package/version.cjs +1 -1
  60. package/version.d.cts +1 -1
  61. package/version.d.ts +1 -1
  62. package/version.js +1 -1
  63. package/pg-core/columns/postgis_extension/geography.cjs +0 -104
  64. package/pg-core/columns/postgis_extension/geography.cjs.map +0 -1
  65. package/pg-core/columns/postgis_extension/geography.d.cts +0 -75
  66. package/pg-core/columns/postgis_extension/geography.d.ts +0 -75
  67. package/pg-core/columns/postgis_extension/geography.js +0 -76
  68. package/pg-core/columns/postgis_extension/geography.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import type { Field } from '@aws-sdk/client-rds-data';
2
2
  import { TypeHint } from '@aws-sdk/client-rds-data';
3
3
  import type { QueryTypingsValue } from "../../sql/sql.cjs";
4
- export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | number[] | Uint8Array | boolean[] | import("@aws-sdk/client-rds-data").ArrayValue[] | null;
4
+ export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | Uint8Array | number[] | boolean[] | import("@aws-sdk/client-rds-data").ArrayValue[] | null;
5
5
  export declare function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined;
6
6
  export declare function toValueParam(value: any, typings?: QueryTypingsValue): {
7
7
  value: Field;
@@ -1,7 +1,7 @@
1
1
  import type { Field } from '@aws-sdk/client-rds-data';
2
2
  import { TypeHint } from '@aws-sdk/client-rds-data';
3
3
  import type { QueryTypingsValue } from "../../sql/sql.js";
4
- export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | number[] | Uint8Array | boolean[] | import("@aws-sdk/client-rds-data").ArrayValue[] | null;
4
+ export declare function getValueFromDataApi(field: Field): string | number | boolean | string[] | Uint8Array | number[] | boolean[] | import("@aws-sdk/client-rds-data").ArrayValue[] | null;
5
5
  export declare function typingsToAwsTypeHint(typings?: QueryTypingsValue): TypeHint | undefined;
6
6
  export declare function toValueParam(value: any, typings?: QueryTypingsValue): {
7
7
  value: Field;
package/index.cjs CHANGED
@@ -22,6 +22,7 @@ __reExport(src_exports, require("./entity.cjs"), module.exports);
22
22
  __reExport(src_exports, require("./errors.cjs"), module.exports);
23
23
  __reExport(src_exports, require("./expressions.cjs"), module.exports);
24
24
  __reExport(src_exports, require("./logger.cjs"), module.exports);
25
+ __reExport(src_exports, require("./monodriver.cjs"), module.exports);
25
26
  __reExport(src_exports, require("./operations.cjs"), module.exports);
26
27
  __reExport(src_exports, require("./query-promise.cjs"), module.exports);
27
28
  __reExport(src_exports, require("./relations.cjs"), module.exports);
@@ -39,6 +40,7 @@ __reExport(src_exports, require("./view-common.cjs"), module.exports);
39
40
  ...require("./errors.cjs"),
40
41
  ...require("./expressions.cjs"),
41
42
  ...require("./logger.cjs"),
43
+ ...require("./monodriver.cjs"),
42
44
  ...require("./operations.cjs"),
43
45
  ...require("./query-promise.cjs"),
44
46
  ...require("./relations.cjs"),
package/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './expressions.ts';\nexport * from './logger.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,uBAAd;AACA,wBAAc,gCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,wBAHd;AAIA,wBAAc,wBAJd;AAKA,wBAAc,6BALd;AAMA,wBAAc,wBANd;AAOA,wBAAc,4BAPd;AAQA,wBAAc,+BARd;AASA,wBAAc,2BATd;AAUA,wBAAc,2BAVd;AAWA,wBAAc,0BAXd;AAYA,wBAAc,uBAZd;AAaA,wBAAc,uBAbd;AAcA,wBAAc,6BAdd;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './expressions.ts';\nexport * from './logger.ts';\nexport * from './monodriver.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,uBAAd;AACA,wBAAc,gCADd;AAEA,wBAAc,wBAFd;AAGA,wBAAc,wBAHd;AAIA,wBAAc,wBAJd;AAKA,wBAAc,6BALd;AAMA,wBAAc,wBANd;AAOA,wBAAc,4BAPd;AAQA,wBAAc,4BARd;AASA,wBAAc,+BATd;AAUA,wBAAc,2BAVd;AAWA,wBAAc,2BAXd;AAYA,wBAAc,0BAZd;AAaA,wBAAc,uBAbd;AAcA,wBAAc,uBAdd;AAeA,wBAAc,6BAfd;","names":[]}
package/index.d.cts CHANGED
@@ -5,6 +5,7 @@ export * from "./entity.cjs";
5
5
  export * from "./errors.cjs";
6
6
  export * from "./expressions.cjs";
7
7
  export * from "./logger.cjs";
8
+ export * from "./monodriver.cjs";
8
9
  export * from "./operations.cjs";
9
10
  export * from "./query-promise.cjs";
10
11
  export * from "./relations.cjs";
package/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from "./entity.js";
5
5
  export * from "./errors.js";
6
6
  export * from "./expressions.js";
7
7
  export * from "./logger.js";
8
+ export * from "./monodriver.js";
8
9
  export * from "./operations.js";
9
10
  export * from "./query-promise.js";
10
11
  export * from "./relations.js";
package/index.js CHANGED
@@ -5,6 +5,7 @@ export * from "./entity.js";
5
5
  export * from "./errors.js";
6
6
  export * from "./expressions.js";
7
7
  export * from "./logger.js";
8
+ export * from "./monodriver.js";
8
9
  export * from "./operations.js";
9
10
  export * from "./query-promise.js";
10
11
  export * from "./relations.js";
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './expressions.ts';\nexport * from './logger.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './alias.ts';\nexport * from './column-builder.ts';\nexport * from './column.ts';\nexport * from './entity.ts';\nexport * from './errors.ts';\nexport * from './expressions.ts';\nexport * from './logger.ts';\nexport * from './monodriver.ts';\nexport * from './operations.ts';\nexport * from './query-promise.ts';\nexport * from './relations.ts';\nexport * from './sql/index.ts';\nexport * from './subquery.ts';\nexport * from './table.ts';\nexport * from './utils.ts';\nexport * from './view-common.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
package/monodriver.cjs ADDED
@@ -0,0 +1,130 @@
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 monodriver_exports = {};
30
+ __export(monodriver_exports, {
31
+ drizzle: () => drizzle
32
+ });
33
+ module.exports = __toCommonJS(monodriver_exports);
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) => {
40
+ const { client, connection, ...drizzleConfig } = params;
41
+ switch (client) {
42
+ case "node-postgres": {
43
+ const { Pool } = await import("pg").catch(() => importError("pg"));
44
+ const { drizzle: drizzle2 } = await import("./node-postgres");
45
+ const instance = new Pool(connection);
46
+ return drizzle2(instance, drizzleConfig);
47
+ }
48
+ case "aws-data-api-pg": {
49
+ const { RDSDataClient } = await import("@aws-sdk/client-rds-data").catch(
50
+ () => importError("@aws-sdk/client-rds-data")
51
+ );
52
+ const { drizzle: drizzle2 } = await import("./aws-data-api/pg");
53
+ const instance = new RDSDataClient(connection);
54
+ return drizzle2(instance, drizzleConfig);
55
+ }
56
+ case "better-sqlite3": {
57
+ const { default: Client } = await import("better-sqlite3").catch(() => importError("better-sqlite3"));
58
+ const { filename, options } = connection;
59
+ const { drizzle: drizzle2 } = await import("./better-sqlite3");
60
+ const instance = new Client(filename, options);
61
+ return drizzle2(instance, drizzleConfig);
62
+ }
63
+ case "bun-sqlite": {
64
+ const { Database: Client } = await import("bun:sqlite").catch(() => importError("bun:sqlite"));
65
+ const { filename, options } = connection;
66
+ const { drizzle: drizzle2 } = await import("./bun-sqlite");
67
+ const instance = new Client(filename, options);
68
+ return drizzle2(instance, drizzleConfig);
69
+ }
70
+ case "d1": {
71
+ const { drizzle: drizzle2 } = await import("./d1");
72
+ return drizzle2(connection, drizzleConfig);
73
+ }
74
+ case "libsql": {
75
+ const { createClient } = await import("@libsql/client").catch(() => importError("@libsql/client"));
76
+ const { drizzle: drizzle2 } = await import("./libsql");
77
+ const instance = createClient(connection);
78
+ return drizzle2(instance, drizzleConfig);
79
+ }
80
+ case "mysql2": {
81
+ const { createConnection } = await import("mysql2/promise").catch(() => importError("mysql2/promise"));
82
+ const instance = await createConnection(connection);
83
+ const { drizzle: drizzle2 } = await import("./mysql2");
84
+ return drizzle2(instance, drizzleConfig);
85
+ }
86
+ case "neon-http": {
87
+ const { neon } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
88
+ const { connectionString, options } = connection;
89
+ const { drizzle: drizzle2 } = await import("./neon-http");
90
+ const instance = neon(connectionString, options);
91
+ return drizzle2(instance, drizzleConfig);
92
+ }
93
+ case "neon-serverless": {
94
+ const { Pool } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
95
+ const { drizzle: drizzle2 } = await import("./neon-serverless");
96
+ const instance = new Pool(connection);
97
+ return drizzle2(instance, drizzleConfig);
98
+ }
99
+ case "planetscale": {
100
+ const { Client } = await import("@planetscale/database").catch(() => importError("@planetscale/database"));
101
+ const { drizzle: drizzle2 } = await import("./planetscale-serverless");
102
+ const instance = new Client(
103
+ connection
104
+ );
105
+ return drizzle2(instance, drizzleConfig);
106
+ }
107
+ case "postgres-js": {
108
+ const { default: client2 } = await import("postgres").catch(() => importError("postgres"));
109
+ const { drizzle: drizzle2 } = await import("./postgres-js");
110
+ const instance = client2(connection);
111
+ return drizzle2(instance, drizzleConfig);
112
+ }
113
+ case "tidb-serverless": {
114
+ const { connect } = await import("@tidbcloud/serverless").catch(() => importError("@tidbcloud/serverless"));
115
+ const { drizzle: drizzle2 } = await import("./tidb-serverless");
116
+ const instance = connect(connection);
117
+ return drizzle2(instance, drizzleConfig);
118
+ }
119
+ case "vercel-postgres": {
120
+ const { sql } = await import("@vercel/postgres").catch(() => importError("@vercel/postgres"));
121
+ const { drizzle: drizzle2 } = await import("./vercel-postgres");
122
+ return drizzle2(sql, drizzleConfig);
123
+ }
124
+ }
125
+ };
126
+ // Annotate the CommonJS export names for ESM import in node:
127
+ 0 && (module.exports = {
128
+ drizzle
129
+ });
130
+ //# sourceMappingURL=monodriver.cjs.map
@@ -0,0 +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: 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, ...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);\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"]}
@@ -0,0 +1,117 @@
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?: string;
50
+ options?: BunSqliteDatabaseOptions;
51
+ };
52
+ type BetterSQLite3DatabaseConfig = {
53
+ filename?: string | Buffer;
54
+ options?: BetterSQLite3Options;
55
+ };
56
+ type MonodriverNeonHttpConfig = {
57
+ connectionString: string;
58
+ options?: NeonHttpConfig<boolean, boolean>;
59
+ };
60
+ type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
61
+ 'node-postgres': NodePgDatabase<TSchema>;
62
+ 'postgres-js': PostgresJsDatabase<TSchema>;
63
+ 'neon-serverless': NeonDatabase<TSchema>;
64
+ 'neon-http': NeonHttpDatabase<TSchema>;
65
+ 'vercel-postgres': VercelPgDatabase<TSchema>;
66
+ 'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;
67
+ planetscale: PlanetScaleDatabase<TSchema>;
68
+ mysql2: MySql2Database<TSchema>;
69
+ 'tidb-serverless': TiDBServerlessDatabase<TSchema>;
70
+ libsql: LibSQLDatabase<TSchema>;
71
+ d1: DrizzleD1Database<TSchema>;
72
+ 'bun-sqlite': BunSQLiteDatabase<TSchema>;
73
+ 'better-sqlite3': BetterSQLite3Database<TSchema>;
74
+ };
75
+ type InitializerParams<TSchema extends Record<string, unknown> = Record<string, never>> = ({
76
+ client: 'node-postgres';
77
+ connection: NodePGPoolConfig;
78
+ } & DrizzleConfig<TSchema>) | ({
79
+ client: 'postgres-js';
80
+ connection: PostgresJSOptions<Record<string, PostgresJSPostgresType>>;
81
+ } & DrizzleConfig<TSchema>) | ({
82
+ client: 'neon-serverless';
83
+ connection: NeonServerlessConfig;
84
+ } & DrizzleConfig<TSchema>) | ({
85
+ client: 'neon-http';
86
+ connection: MonodriverNeonHttpConfig;
87
+ } & DrizzleConfig<TSchema>) | ({
88
+ client: 'vercel-postgres';
89
+ connection: VercelPool;
90
+ } & DrizzleConfig<TSchema>) | ({
91
+ client: 'aws-data-api-pg';
92
+ connection: RDSConfig;
93
+ } & DrizzleAwsDataApiPgConfig<TSchema>) | ({
94
+ client: 'planetscale';
95
+ connection: PlanetscaleConfig;
96
+ } & DrizzleConfig<TSchema>) | ({
97
+ client: 'mysql2';
98
+ connection: Mysql2Config;
99
+ } & MySql2DrizzleConfig<TSchema>) | ({
100
+ client: 'tidb-serverless';
101
+ connection: TiDBServerlessConfig;
102
+ } & DrizzleConfig<TSchema>) | ({
103
+ client: 'libsql';
104
+ connection: LibsqlConfig;
105
+ } & DrizzleConfig<TSchema>) | ({
106
+ client: 'd1';
107
+ connection: D1Database;
108
+ } & DrizzleConfig<TSchema>) | ({
109
+ client: 'bun-sqlite';
110
+ connection: BunSqliteDatabaseConfig;
111
+ } & DrizzleConfig<TSchema>) | ({
112
+ client: 'better-sqlite3';
113
+ connection: BetterSQLite3DatabaseConfig;
114
+ } & DrizzleConfig<TSchema>);
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) => Promise<DetermineClient<TParams>>;
117
+ export {};
@@ -0,0 +1,117 @@
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?: string;
50
+ options?: BunSqliteDatabaseOptions;
51
+ };
52
+ type BetterSQLite3DatabaseConfig = {
53
+ filename?: string | Buffer;
54
+ options?: BetterSQLite3Options;
55
+ };
56
+ type MonodriverNeonHttpConfig = {
57
+ connectionString: string;
58
+ options?: NeonHttpConfig<boolean, boolean>;
59
+ };
60
+ type ClientDrizzleInstanceMap<TSchema extends Record<string, any>> = {
61
+ 'node-postgres': NodePgDatabase<TSchema>;
62
+ 'postgres-js': PostgresJsDatabase<TSchema>;
63
+ 'neon-serverless': NeonDatabase<TSchema>;
64
+ 'neon-http': NeonHttpDatabase<TSchema>;
65
+ 'vercel-postgres': VercelPgDatabase<TSchema>;
66
+ 'aws-data-api-pg': AwsDataApiPgDatabase<TSchema>;
67
+ planetscale: PlanetScaleDatabase<TSchema>;
68
+ mysql2: MySql2Database<TSchema>;
69
+ 'tidb-serverless': TiDBServerlessDatabase<TSchema>;
70
+ libsql: LibSQLDatabase<TSchema>;
71
+ d1: DrizzleD1Database<TSchema>;
72
+ 'bun-sqlite': BunSQLiteDatabase<TSchema>;
73
+ 'better-sqlite3': BetterSQLite3Database<TSchema>;
74
+ };
75
+ type InitializerParams<TSchema extends Record<string, unknown> = Record<string, never>> = ({
76
+ client: 'node-postgres';
77
+ connection: NodePGPoolConfig;
78
+ } & DrizzleConfig<TSchema>) | ({
79
+ client: 'postgres-js';
80
+ connection: PostgresJSOptions<Record<string, PostgresJSPostgresType>>;
81
+ } & DrizzleConfig<TSchema>) | ({
82
+ client: 'neon-serverless';
83
+ connection: NeonServerlessConfig;
84
+ } & DrizzleConfig<TSchema>) | ({
85
+ client: 'neon-http';
86
+ connection: MonodriverNeonHttpConfig;
87
+ } & DrizzleConfig<TSchema>) | ({
88
+ client: 'vercel-postgres';
89
+ connection: VercelPool;
90
+ } & DrizzleConfig<TSchema>) | ({
91
+ client: 'aws-data-api-pg';
92
+ connection: RDSConfig;
93
+ } & DrizzleAwsDataApiPgConfig<TSchema>) | ({
94
+ client: 'planetscale';
95
+ connection: PlanetscaleConfig;
96
+ } & DrizzleConfig<TSchema>) | ({
97
+ client: 'mysql2';
98
+ connection: Mysql2Config;
99
+ } & MySql2DrizzleConfig<TSchema>) | ({
100
+ client: 'tidb-serverless';
101
+ connection: TiDBServerlessConfig;
102
+ } & DrizzleConfig<TSchema>) | ({
103
+ client: 'libsql';
104
+ connection: LibsqlConfig;
105
+ } & DrizzleConfig<TSchema>) | ({
106
+ client: 'd1';
107
+ connection: D1Database;
108
+ } & DrizzleConfig<TSchema>) | ({
109
+ client: 'bun-sqlite';
110
+ connection: BunSqliteDatabaseConfig;
111
+ } & DrizzleConfig<TSchema>) | ({
112
+ client: 'better-sqlite3';
113
+ connection: BetterSQLite3DatabaseConfig;
114
+ } & DrizzleConfig<TSchema>);
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) => Promise<DetermineClient<TParams>>;
117
+ export {};
package/monodriver.js ADDED
@@ -0,0 +1,96 @@
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) => {
7
+ const { client, connection, ...drizzleConfig } = params;
8
+ switch (client) {
9
+ case "node-postgres": {
10
+ const { Pool } = await import("pg").catch(() => importError("pg"));
11
+ const { drizzle: drizzle2 } = await import("./node-postgres");
12
+ const instance = new Pool(connection);
13
+ return drizzle2(instance, drizzleConfig);
14
+ }
15
+ case "aws-data-api-pg": {
16
+ const { RDSDataClient } = await import("@aws-sdk/client-rds-data").catch(
17
+ () => importError("@aws-sdk/client-rds-data")
18
+ );
19
+ const { drizzle: drizzle2 } = await import("./aws-data-api/pg");
20
+ const instance = new RDSDataClient(connection);
21
+ return drizzle2(instance, drizzleConfig);
22
+ }
23
+ case "better-sqlite3": {
24
+ const { default: Client } = await import("better-sqlite3").catch(() => importError("better-sqlite3"));
25
+ const { filename, options } = connection;
26
+ const { drizzle: drizzle2 } = await import("./better-sqlite3");
27
+ const instance = new Client(filename, options);
28
+ return drizzle2(instance, drizzleConfig);
29
+ }
30
+ case "bun-sqlite": {
31
+ const { Database: Client } = await import("bun:sqlite").catch(() => importError("bun:sqlite"));
32
+ const { filename, options } = connection;
33
+ const { drizzle: drizzle2 } = await import("./bun-sqlite");
34
+ const instance = new Client(filename, options);
35
+ return drizzle2(instance, drizzleConfig);
36
+ }
37
+ case "d1": {
38
+ const { drizzle: drizzle2 } = await import("./d1");
39
+ return drizzle2(connection, drizzleConfig);
40
+ }
41
+ case "libsql": {
42
+ const { createClient } = await import("@libsql/client").catch(() => importError("@libsql/client"));
43
+ const { drizzle: drizzle2 } = await import("./libsql");
44
+ const instance = createClient(connection);
45
+ return drizzle2(instance, drizzleConfig);
46
+ }
47
+ case "mysql2": {
48
+ const { createConnection } = await import("mysql2/promise").catch(() => importError("mysql2/promise"));
49
+ const instance = await createConnection(connection);
50
+ const { drizzle: drizzle2 } = await import("./mysql2");
51
+ return drizzle2(instance, drizzleConfig);
52
+ }
53
+ case "neon-http": {
54
+ const { neon } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
55
+ const { connectionString, options } = connection;
56
+ const { drizzle: drizzle2 } = await import("./neon-http");
57
+ const instance = neon(connectionString, options);
58
+ return drizzle2(instance, drizzleConfig);
59
+ }
60
+ case "neon-serverless": {
61
+ const { Pool } = await import("@neondatabase/serverless").catch(() => importError("@neondatabase/serverless"));
62
+ const { drizzle: drizzle2 } = await import("./neon-serverless");
63
+ const instance = new Pool(connection);
64
+ return drizzle2(instance, drizzleConfig);
65
+ }
66
+ case "planetscale": {
67
+ const { Client } = await import("@planetscale/database").catch(() => importError("@planetscale/database"));
68
+ const { drizzle: drizzle2 } = await import("./planetscale-serverless");
69
+ const instance = new Client(
70
+ connection
71
+ );
72
+ return drizzle2(instance, drizzleConfig);
73
+ }
74
+ case "postgres-js": {
75
+ const { default: client2 } = await import("postgres").catch(() => importError("postgres"));
76
+ const { drizzle: drizzle2 } = await import("./postgres-js");
77
+ const instance = client2(connection);
78
+ return drizzle2(instance, drizzleConfig);
79
+ }
80
+ case "tidb-serverless": {
81
+ const { connect } = await import("@tidbcloud/serverless").catch(() => importError("@tidbcloud/serverless"));
82
+ const { drizzle: drizzle2 } = await import("./tidb-serverless");
83
+ const instance = connect(connection);
84
+ return drizzle2(instance, drizzleConfig);
85
+ }
86
+ case "vercel-postgres": {
87
+ const { sql } = await import("@vercel/postgres").catch(() => importError("@vercel/postgres"));
88
+ const { drizzle: drizzle2 } = await import("./vercel-postgres");
89
+ return drizzle2(sql, drizzleConfig);
90
+ }
91
+ }
92
+ };
93
+ export {
94
+ drizzle
95
+ };
96
+ //# sourceMappingURL=monodriver.js.map
@@ -0,0 +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: 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, ...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);\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/mysql-core/db.cjs CHANGED
@@ -25,6 +25,7 @@ module.exports = __toCommonJS(db_exports);
25
25
  var import_entity = require("../entity.cjs");
26
26
  var import_selection_proxy = require("../selection-proxy.cjs");
27
27
  var import_subquery = require("../subquery.cjs");
28
+ var import_count = require("./query-builders/count.cjs");
28
29
  var import_query_builders = require("./query-builders/index.cjs");
29
30
  var import_query = require("./query-builders/query.cjs");
30
31
  class MySqlDatabase {
@@ -104,6 +105,9 @@ class MySqlDatabase {
104
105
  }
105
106
  };
106
107
  }
108
+ $count(source, filters) {
109
+ return new import_count.MySqlCountBuilder({ source, filters, dialect: this.dialect, session: this.session });
110
+ }
107
111
  /**
108
112
  * Incorporates a previously defined CTE (using `$with`) into the main query.
109
113
  *