drizzle-orm 0.34.1-8c3e1b5 → 0.34.1-9a563af
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/aws-data-api/pg/driver.cjs +21 -1
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +20 -3
- package/aws-data-api/pg/driver.d.ts +20 -3
- package/aws-data-api/pg/driver.js +21 -1
- package/aws-data-api/pg/driver.js.map +1 -1
- package/better-sqlite3/driver.cjs +37 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.d.cts +24 -3
- package/better-sqlite3/driver.d.ts +24 -3
- package/better-sqlite3/driver.js +27 -1
- package/better-sqlite3/driver.js.map +1 -1
- package/bun-sqlite/driver.cjs +28 -1
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.d.cts +46 -4
- package/bun-sqlite/driver.d.ts +46 -4
- package/bun-sqlite/driver.js +28 -1
- package/bun-sqlite/driver.js.map +1 -1
- package/libsql/driver.cjs +27 -1
- package/libsql/driver.cjs.map +1 -1
- package/libsql/driver.d.cts +22 -4
- package/libsql/driver.d.ts +22 -4
- package/libsql/driver.js +27 -1
- package/libsql/driver.js.map +1 -1
- package/mysql2/driver.cjs +29 -1
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.d.cts +23 -3
- package/mysql2/driver.d.ts +23 -3
- package/mysql2/driver.js +29 -1
- package/mysql2/driver.js.map +1 -1
- package/neon-http/driver.cjs +26 -1
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +23 -3
- package/neon-http/driver.d.ts +23 -3
- package/neon-http/driver.js +27 -2
- package/neon-http/driver.js.map +1 -1
- package/neon-serverless/driver.cjs +29 -1
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +23 -2
- package/neon-serverless/driver.d.ts +23 -2
- package/neon-serverless/driver.js +29 -1
- package/neon-serverless/driver.js.map +1 -1
- package/node-postgres/driver.cjs +37 -1
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +21 -2
- package/node-postgres/driver.d.ts +21 -2
- package/node-postgres/driver.js +27 -1
- package/node-postgres/driver.js.map +1 -1
- package/package.json +1 -37
- package/pglite/driver.cjs +27 -1
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +24 -3
- package/pglite/driver.d.ts +24 -3
- package/pglite/driver.js +27 -1
- package/pglite/driver.js.map +1 -1
- package/planetscale-serverless/driver.cjs +27 -1
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.d.cts +21 -3
- package/planetscale-serverless/driver.d.ts +21 -3
- package/planetscale-serverless/driver.js +27 -1
- package/planetscale-serverless/driver.js.map +1 -1
- package/postgres-js/driver.cjs +37 -1
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +24 -4
- package/postgres-js/driver.d.ts +24 -4
- package/postgres-js/driver.js +27 -1
- package/postgres-js/driver.js.map +1 -1
- package/tidb-serverless/driver.cjs +26 -1
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.d.cts +22 -4
- package/tidb-serverless/driver.d.ts +22 -4
- package/tidb-serverless/driver.js +26 -1
- package/tidb-serverless/driver.js.map +1 -1
- package/utils.cjs.map +1 -1
- package/utils.d.cts +1 -0
- package/utils.d.ts +1 -0
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +18 -1
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +23 -3
- package/vercel-postgres/driver.d.ts +23 -3
- package/vercel-postgres/driver.js +18 -1
- package/vercel-postgres/driver.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/connect.cjs +0 -25
- package/connect.cjs.map +0 -1
- package/connect.d.cts +0 -2
- package/connect.d.ts +0 -2
- package/connect.js +0 -3
- package/connect.js.map +0 -1
- package/monodriver.cjs +0 -283
- package/monodriver.cjs.map +0 -1
- package/monodriver.d.cts +0 -192
- package/monodriver.d.ts +0 -192
- package/monodriver.js +0 -249
- package/monodriver.js.map +0 -1
- package/monomigrator.cjs +0 -99
- package/monomigrator.cjs.map +0 -1
- package/monomigrator.d.cts +0 -16
- package/monomigrator.d.ts +0 -16
- package/monomigrator.js +0 -65
- package/monomigrator.js.map +0 -1
package/bun-sqlite/driver.d.ts
CHANGED
|
@@ -1,10 +1,52 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Database } from 'bun:sqlite';
|
|
2
2
|
import { entityKind } from "../entity.js";
|
|
3
3
|
import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
|
|
4
|
-
import type { DrizzleConfig } from "../utils.js";
|
|
4
|
+
import type { DrizzleConfig, IfNotImported, ImportTypeError } from "../utils.js";
|
|
5
5
|
export declare class BunSQLiteDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'sync', void, TSchema> {
|
|
6
6
|
static readonly [entityKind]: string;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
type DrizzleBunSqliteDatabaseOptions = {
|
|
9
|
+
/**
|
|
10
|
+
* Open the database as read-only (no write operations, no create).
|
|
11
|
+
*
|
|
12
|
+
* Equivalent to {@link constants.SQLITE_OPEN_READONLY}
|
|
13
|
+
*/
|
|
14
|
+
readonly?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Allow creating a new database
|
|
17
|
+
*
|
|
18
|
+
* Equivalent to {@link constants.SQLITE_OPEN_CREATE}
|
|
19
|
+
*/
|
|
20
|
+
create?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Open the database as read-write
|
|
23
|
+
*
|
|
24
|
+
* Equivalent to {@link constants.SQLITE_OPEN_READWRITE}
|
|
25
|
+
*/
|
|
26
|
+
readwrite?: boolean;
|
|
10
27
|
};
|
|
28
|
+
export type DrizzleBunSqliteDatabaseConfig = ({
|
|
29
|
+
source?: string;
|
|
30
|
+
} & DrizzleBunSqliteDatabaseOptions) | string | undefined;
|
|
31
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends Database = Database>(...params: IfNotImported<Database, [
|
|
32
|
+
ImportTypeError<'bun-types'>
|
|
33
|
+
], [] | [
|
|
34
|
+
TClient | string
|
|
35
|
+
] | [
|
|
36
|
+
TClient | string,
|
|
37
|
+
DrizzleConfig<TSchema>
|
|
38
|
+
] | [
|
|
39
|
+
(DrizzleConfig<TSchema> & ({
|
|
40
|
+
connection?: DrizzleBunSqliteDatabaseConfig;
|
|
41
|
+
} | {
|
|
42
|
+
client: TClient;
|
|
43
|
+
}))
|
|
44
|
+
]>): BunSQLiteDatabase<TSchema> & {
|
|
45
|
+
$client: TClient;
|
|
46
|
+
};
|
|
47
|
+
export declare namespace drizzle {
|
|
48
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): BunSQLiteDatabase<TSchema> & {
|
|
49
|
+
$client: '$client is not available on drizzle.mock()';
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export {};
|
package/bun-sqlite/driver.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
1
2
|
import { entityKind } from "../entity.js";
|
|
2
3
|
import { DefaultLogger } from "../logger.js";
|
|
3
4
|
import {
|
|
@@ -10,7 +11,7 @@ import { SQLiteBunSession } from "./session.js";
|
|
|
10
11
|
class BunSQLiteDatabase extends BaseSQLiteDatabase {
|
|
11
12
|
static [entityKind] = "BunSQLiteDatabase";
|
|
12
13
|
}
|
|
13
|
-
function
|
|
14
|
+
function construct(client, config = {}) {
|
|
14
15
|
const dialect = new SQLiteSyncDialect({ casing: config.casing });
|
|
15
16
|
let logger;
|
|
16
17
|
if (config.logger === true) {
|
|
@@ -35,6 +36,32 @@ function drizzle(client, config = {}) {
|
|
|
35
36
|
db.$client = client;
|
|
36
37
|
return db;
|
|
37
38
|
}
|
|
39
|
+
function drizzle(...params) {
|
|
40
|
+
if (params[0] instanceof Database) {
|
|
41
|
+
return construct(params[0], params[1]);
|
|
42
|
+
}
|
|
43
|
+
if (typeof params[0] === "object") {
|
|
44
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
45
|
+
if (client)
|
|
46
|
+
return construct(client, drizzleConfig);
|
|
47
|
+
if (typeof connection === "object") {
|
|
48
|
+
const { source, ...opts } = connection;
|
|
49
|
+
const options = Object.values(opts).filter((v) => v !== void 0).length ? opts : void 0;
|
|
50
|
+
const instance3 = new Database(source, options);
|
|
51
|
+
return construct(instance3, drizzleConfig);
|
|
52
|
+
}
|
|
53
|
+
const instance2 = new Database(connection);
|
|
54
|
+
return construct(instance2, drizzleConfig);
|
|
55
|
+
}
|
|
56
|
+
const instance = new Database(params[0]);
|
|
57
|
+
return construct(instance, params[1]);
|
|
58
|
+
}
|
|
59
|
+
((drizzle2) => {
|
|
60
|
+
function mock(config) {
|
|
61
|
+
return construct({}, config);
|
|
62
|
+
}
|
|
63
|
+
drizzle2.mock = mock;
|
|
64
|
+
})(drizzle || (drizzle = {}));
|
|
38
65
|
export {
|
|
39
66
|
BunSQLiteDatabase,
|
|
40
67
|
drizzle
|
package/bun-sqlite/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bun-sqlite/driver.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport
|
|
1
|
+
{"version":3,"sources":["../../src/bun-sqlite/driver.ts"],"sourcesContent":["/// <reference types=\"bun-types\" />\n\nimport { Database } from 'bun:sqlite';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig, IfNotImported, ImportTypeError } from '~/utils.ts';\nimport { SQLiteBunSession } from './session.ts';\n\nexport class BunSQLiteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'sync', void, TSchema> {\n\tstatic override readonly [entityKind]: string = 'BunSQLiteDatabase';\n}\n\ntype DrizzleBunSqliteDatabaseOptions = {\n\t/**\n\t * Open the database as read-only (no write operations, no create).\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READONLY}\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Allow creating a new database\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_CREATE}\n\t */\n\tcreate?: boolean;\n\t/**\n\t * Open the database as read-write\n\t *\n\t * Equivalent to {@link constants.SQLITE_OPEN_READWRITE}\n\t */\n\treadwrite?: boolean;\n};\n\nexport type DrizzleBunSqliteDatabaseConfig =\n\t| ({\n\t\tsource?: string;\n\t} & DrizzleBunSqliteDatabaseOptions)\n\t| string\n\t| undefined;\n\nfunction construct<TSchema extends Record<string, unknown> = Record<string, never>>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema> = {},\n): BunSQLiteDatabase<TSchema> & {\n\t$client: Database;\n} {\n\tconst dialect = new SQLiteSyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new SQLiteBunSession(client, dialect, schema, { logger });\n\tconst db = new BunSQLiteDatabase('sync', dialect, session, schema) as BunSQLiteDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Database = Database,\n>(\n\t...params: IfNotImported<\n\t\tDatabase,\n\t\t[ImportTypeError<'bun-types'>],\n\t\t| []\n\t\t| [\n\t\t\tTClient | string,\n\t\t]\n\t\t| [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t]\n\t\t| [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection?: DrizzleBunSqliteDatabaseConfig;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): BunSQLiteDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (params[0] instanceof Database) {\n\t\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (typeof params[0] === 'object') {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& ({\n\t\t\t\tconnection?: DrizzleBunSqliteDatabaseConfig | string;\n\t\t\t\tclient?: TClient;\n\t\t\t})\n\t\t\t& DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tif (typeof connection === 'object') {\n\t\t\tconst { source, ...opts } = connection;\n\n\t\t\tconst options = Object.values(opts).filter((v) => v !== undefined).length ? opts : undefined;\n\n\t\t\tconst instance = new Database(source, options);\n\n\t\t\treturn construct(instance, drizzleConfig) as any;\n\t\t}\n\n\t\tconst instance = new Database(connection);\n\n\t\treturn construct(instance, drizzleConfig) as any;\n\t}\n\n\tconst instance = new Database(params[0]);\n\n\treturn construct(instance, params[1]) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): BunSQLiteDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAEA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AACP,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AAE1B,MAAM,0BAEH,mBAA0C;AAAA,EACnD,QAA0B,UAAU,IAAY;AACjD;AA8BA,SAAS,UACR,QACA,SAAiC,CAAC,GAGjC;AACD,QAAM,UAAU,IAAI,kBAAkB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC/D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,iBAAiB,QAAQ,SAAS,QAAQ,EAAE,OAAO,CAAC;AACxE,QAAM,KAAK,IAAI,kBAAkB,QAAQ,SAAS,SAAS,MAAM;AACjE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAwBF;AAED,MAAI,OAAO,CAAC,aAAa,UAAU;AAClC,WAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AAAA,EACvF;AAEA,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAOzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,QAAI,OAAO,eAAe,UAAU;AACnC,YAAM,EAAE,QAAQ,GAAG,KAAK,IAAI;AAE5B,YAAM,UAAU,OAAO,OAAO,IAAI,EAAE,OAAO,CAAC,MAAM,MAAM,MAAS,EAAE,SAAS,OAAO;AAEnF,YAAMA,YAAW,IAAI,SAAS,QAAQ,OAAO;AAE7C,aAAO,UAAUA,WAAU,aAAa;AAAA,IACzC;AAEA,UAAMA,YAAW,IAAI,SAAS,UAAU;AAExC,WAAO,UAAUA,WAAU,aAAa;AAAA,EACzC;AAEA,QAAM,WAAW,IAAI,SAAS,OAAO,CAAC,CAAC;AAEvC,SAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AACrC;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
|
package/libsql/driver.cjs
CHANGED
|
@@ -22,6 +22,10 @@ __export(driver_exports, {
|
|
|
22
22
|
drizzle: () => drizzle
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(driver_exports);
|
|
25
|
+
var import_client = require("@libsql/client");
|
|
26
|
+
var import_http = require("@libsql/client/http");
|
|
27
|
+
var import_sqlite3 = require("@libsql/client/sqlite3");
|
|
28
|
+
var import_ws = require("@libsql/client/ws");
|
|
25
29
|
var import_entity = require("../entity.cjs");
|
|
26
30
|
var import_logger = require("../logger.cjs");
|
|
27
31
|
var import_relations = require("../relations.cjs");
|
|
@@ -34,7 +38,7 @@ class LibSQLDatabase extends import_db.BaseSQLiteDatabase {
|
|
|
34
38
|
return this.session.batch(batch);
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
|
-
function
|
|
41
|
+
function construct(client, config = {}) {
|
|
38
42
|
const dialect = new import_dialect.SQLiteAsyncDialect({ casing: config.casing });
|
|
39
43
|
let logger;
|
|
40
44
|
if (config.logger === true) {
|
|
@@ -59,6 +63,28 @@ function drizzle(client, config = {}) {
|
|
|
59
63
|
db.$client = client;
|
|
60
64
|
return db;
|
|
61
65
|
}
|
|
66
|
+
function drizzle(...params) {
|
|
67
|
+
if (params[0] instanceof import_ws.WsClient || params[0] instanceof import_http.HttpClient || params[0] instanceof import_sqlite3.Sqlite3Client) {
|
|
68
|
+
return construct(params[0], params[1]);
|
|
69
|
+
}
|
|
70
|
+
if (typeof params[0] === "string") {
|
|
71
|
+
const instance2 = (0, import_client.createClient)({
|
|
72
|
+
url: params[0]
|
|
73
|
+
});
|
|
74
|
+
return construct(instance2, params[1]);
|
|
75
|
+
}
|
|
76
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
77
|
+
if (client)
|
|
78
|
+
return construct(client, drizzleConfig);
|
|
79
|
+
const instance = typeof connection === "string" ? (0, import_client.createClient)({ url: connection }) : (0, import_client.createClient)(connection);
|
|
80
|
+
return construct(instance, drizzleConfig);
|
|
81
|
+
}
|
|
82
|
+
((drizzle2) => {
|
|
83
|
+
function mock(config) {
|
|
84
|
+
return construct({}, config);
|
|
85
|
+
}
|
|
86
|
+
drizzle2.mock = mock;
|
|
87
|
+
})(drizzle || (drizzle = {}));
|
|
62
88
|
// Annotate the CommonJS export names for ESM import in node:
|
|
63
89
|
0 && (module.exports = {
|
|
64
90
|
LibSQLDatabase,
|
package/libsql/driver.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/libsql/driver.ts"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"sources":["../../src/libsql/driver.ts"],"sourcesContent":["import { type Client, type Config, createClient, type ResultSet } from '@libsql/client';\nimport { HttpClient } from '@libsql/client/http';\nimport { Sqlite3Client } from '@libsql/client/sqlite3';\nimport { WsClient } from '@libsql/client/ws';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig, IfNotImported, ImportTypeError } from '~/utils.ts';\nimport { LibSQLSession } from './session.ts';\n\nexport class LibSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: LibSQLSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(client: Client, config: DrizzleConfig<TSchema> = {}): LibSQLDatabase<TSchema> & {\n\t$client: Client;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new LibSQLSession(client, dialect, schema, { logger }, undefined);\n\tconst db = new LibSQLDatabase('async', dialect, session, schema) as LibSQLDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: IfNotImported<\n\t\tClient,\n\t\t[ImportTypeError<'@libsql/client'>],\n\t\t[\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | Config;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (params[0] instanceof WsClient || params[0] instanceof HttpClient || params[0] instanceof Sqlite3Client) {\n\t\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: Config; client?: TClient }\n\t\t& DrizzleConfig<TSchema>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : createClient(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): LibSQLDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuE;AACvE,kBAA2B;AAC3B,qBAA8B;AAC9B,gBAAyB;AAEzB,oBAA2B;AAC3B,oBAA8B;AAC9B,uBAMO;AACP,gBAAmC;AACnC,qBAAmC;AAEnC,qBAA8B;AAEvB,MAAM,uBAEH,6BAAgD;AAAA,EACzD,QAA0B,wBAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEA,SAAS,UAEP,QAAgB,SAAiC,CAAC,GAElD;AACD,QAAM,UAAU,IAAI,kCAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,6BAAc,QAAQ,SAAS,QAAQ,EAAE,OAAO,GAAG,MAAS;AAChF,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,SAAS,MAAM;AAC/D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAqBF;AAED,MAAI,OAAO,CAAC,aAAa,sBAAY,OAAO,CAAC,aAAa,0BAAc,OAAO,CAAC,aAAa,8BAAe;AAC3G,WAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AAAA,EACvF;AAEA,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAMA,gBAAW,4BAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAUA,WAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,QAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,MAAI;AAAQ,WAAO,UAAU,QAAQ,aAAa;AAElD,QAAM,WAAW,OAAO,eAAe,eAAW,4BAAa,EAAE,KAAK,WAAW,CAAC,QAAI,4BAAa,UAAW;AAE9G,SAAO,UAAU,UAAU,aAAa;AACzC;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
|
package/libsql/driver.d.cts
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Client, type Config, type ResultSet } from '@libsql/client';
|
|
2
2
|
import type { BatchItem, BatchResponse } from "../batch.cjs";
|
|
3
3
|
import { entityKind } from "../entity.cjs";
|
|
4
4
|
import { BaseSQLiteDatabase } from "../sqlite-core/db.cjs";
|
|
5
|
-
import type { DrizzleConfig } from "../utils.cjs";
|
|
5
|
+
import type { DrizzleConfig, IfNotImported, ImportTypeError } from "../utils.cjs";
|
|
6
6
|
export declare class LibSQLDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {
|
|
7
7
|
static readonly [entityKind]: string;
|
|
8
8
|
batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
|
|
9
9
|
}
|
|
10
|
-
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never
|
|
11
|
-
|
|
10
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends Client = Client>(...params: IfNotImported<Client, [
|
|
11
|
+
ImportTypeError<'@libsql/client'>
|
|
12
|
+
], [
|
|
13
|
+
TClient | string
|
|
14
|
+
] | [
|
|
15
|
+
TClient | string,
|
|
16
|
+
DrizzleConfig<TSchema>
|
|
17
|
+
] | [
|
|
18
|
+
(DrizzleConfig<TSchema> & ({
|
|
19
|
+
connection: string | Config;
|
|
20
|
+
} | {
|
|
21
|
+
client: TClient;
|
|
22
|
+
}))
|
|
23
|
+
]>): LibSQLDatabase<TSchema> & {
|
|
24
|
+
$client: TClient;
|
|
12
25
|
};
|
|
26
|
+
export declare namespace drizzle {
|
|
27
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): LibSQLDatabase<TSchema> & {
|
|
28
|
+
$client: '$client is not available on drizzle.mock()';
|
|
29
|
+
};
|
|
30
|
+
}
|
package/libsql/driver.d.ts
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Client, type Config, type ResultSet } from '@libsql/client';
|
|
2
2
|
import type { BatchItem, BatchResponse } from "../batch.js";
|
|
3
3
|
import { entityKind } from "../entity.js";
|
|
4
4
|
import { BaseSQLiteDatabase } from "../sqlite-core/db.js";
|
|
5
|
-
import type { DrizzleConfig } from "../utils.js";
|
|
5
|
+
import type { DrizzleConfig, IfNotImported, ImportTypeError } from "../utils.js";
|
|
6
6
|
export declare class LibSQLDatabase<TSchema extends Record<string, unknown> = Record<string, never>> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {
|
|
7
7
|
static readonly [entityKind]: string;
|
|
8
8
|
batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(batch: T): Promise<BatchResponse<T>>;
|
|
9
9
|
}
|
|
10
|
-
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never
|
|
11
|
-
|
|
10
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends Client = Client>(...params: IfNotImported<Client, [
|
|
11
|
+
ImportTypeError<'@libsql/client'>
|
|
12
|
+
], [
|
|
13
|
+
TClient | string
|
|
14
|
+
] | [
|
|
15
|
+
TClient | string,
|
|
16
|
+
DrizzleConfig<TSchema>
|
|
17
|
+
] | [
|
|
18
|
+
(DrizzleConfig<TSchema> & ({
|
|
19
|
+
connection: string | Config;
|
|
20
|
+
} | {
|
|
21
|
+
client: TClient;
|
|
22
|
+
}))
|
|
23
|
+
]>): LibSQLDatabase<TSchema> & {
|
|
24
|
+
$client: TClient;
|
|
12
25
|
};
|
|
26
|
+
export declare namespace drizzle {
|
|
27
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: DrizzleConfig<TSchema>): LibSQLDatabase<TSchema> & {
|
|
28
|
+
$client: '$client is not available on drizzle.mock()';
|
|
29
|
+
};
|
|
30
|
+
}
|
package/libsql/driver.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { createClient } from "@libsql/client";
|
|
2
|
+
import { HttpClient } from "@libsql/client/http";
|
|
3
|
+
import { Sqlite3Client } from "@libsql/client/sqlite3";
|
|
4
|
+
import { WsClient } from "@libsql/client/ws";
|
|
1
5
|
import { entityKind } from "../entity.js";
|
|
2
6
|
import { DefaultLogger } from "../logger.js";
|
|
3
7
|
import {
|
|
@@ -13,7 +17,7 @@ class LibSQLDatabase extends BaseSQLiteDatabase {
|
|
|
13
17
|
return this.session.batch(batch);
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
|
-
function
|
|
20
|
+
function construct(client, config = {}) {
|
|
17
21
|
const dialect = new SQLiteAsyncDialect({ casing: config.casing });
|
|
18
22
|
let logger;
|
|
19
23
|
if (config.logger === true) {
|
|
@@ -38,6 +42,28 @@ function drizzle(client, config = {}) {
|
|
|
38
42
|
db.$client = client;
|
|
39
43
|
return db;
|
|
40
44
|
}
|
|
45
|
+
function drizzle(...params) {
|
|
46
|
+
if (params[0] instanceof WsClient || params[0] instanceof HttpClient || params[0] instanceof Sqlite3Client) {
|
|
47
|
+
return construct(params[0], params[1]);
|
|
48
|
+
}
|
|
49
|
+
if (typeof params[0] === "string") {
|
|
50
|
+
const instance2 = createClient({
|
|
51
|
+
url: params[0]
|
|
52
|
+
});
|
|
53
|
+
return construct(instance2, params[1]);
|
|
54
|
+
}
|
|
55
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
56
|
+
if (client)
|
|
57
|
+
return construct(client, drizzleConfig);
|
|
58
|
+
const instance = typeof connection === "string" ? createClient({ url: connection }) : createClient(connection);
|
|
59
|
+
return construct(instance, drizzleConfig);
|
|
60
|
+
}
|
|
61
|
+
((drizzle2) => {
|
|
62
|
+
function mock(config) {
|
|
63
|
+
return construct({}, config);
|
|
64
|
+
}
|
|
65
|
+
drizzle2.mock = mock;
|
|
66
|
+
})(drizzle || (drizzle = {}));
|
|
41
67
|
export {
|
|
42
68
|
LibSQLDatabase,
|
|
43
69
|
drizzle
|
package/libsql/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/libsql/driver.ts"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"sources":["../../src/libsql/driver.ts"],"sourcesContent":["import { type Client, type Config, createClient, type ResultSet } from '@libsql/client';\nimport { HttpClient } from '@libsql/client/http';\nimport { Sqlite3Client } from '@libsql/client/sqlite3';\nimport { WsClient } from '@libsql/client/ws';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig, IfNotImported, ImportTypeError } from '~/utils.ts';\nimport { LibSQLSession } from './session.ts';\n\nexport class LibSQLDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends BaseSQLiteDatabase<'async', ResultSet, TSchema> {\n\tstatic override readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: LibSQLSession<TSchema, ExtractTablesWithRelations<TSchema>>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n>(client: Client, config: DrizzleConfig<TSchema> = {}): LibSQLDatabase<TSchema> & {\n\t$client: Client;\n} {\n\tconst dialect = new SQLiteAsyncDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new LibSQLSession(client, dialect, schema, { logger }, undefined);\n\tconst db = new LibSQLDatabase('async', dialect, session, schema) as LibSQLDatabase<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Client = Client,\n>(\n\t...params: IfNotImported<\n\t\tClient,\n\t\t[ImportTypeError<'@libsql/client'>],\n\t\t[\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tDrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | Config;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): LibSQLDatabase<TSchema> & {\n\t$client: TClient;\n} {\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (params[0] instanceof WsClient || params[0] instanceof HttpClient || params[0] instanceof Sqlite3Client) {\n\t\treturn construct(params[0] as TClient, params[1] as DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = createClient({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: Config; client?: TClient }\n\t\t& DrizzleConfig<TSchema>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string' ? createClient({ url: connection }) : createClient(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: DrizzleConfig<TSchema>,\n\t): LibSQLDatabase<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAAmC,oBAAoC;AACvE,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AAEzB,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B;AAAA,EACC;AAAA,EACA;AAAA,OAIM;AACP,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,qBAAqB;AAEvB,MAAM,uBAEH,mBAAgD;AAAA,EACzD,QAA0B,UAAU,IAAY;AAAA,EAKhD,MAAM,MACL,OAC4B;AAC5B,WAAO,KAAK,QAAQ,MAAM,KAAK;AAAA,EAChC;AACD;AAEA,SAAS,UAEP,QAAgB,SAAiC,CAAC,GAElD;AACD,QAAM,UAAU,IAAI,mBAAmB,EAAE,QAAQ,OAAO,OAAO,CAAC;AAChE,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,cAAc,QAAQ,SAAS,QAAQ,EAAE,OAAO,GAAG,MAAS;AAChF,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,SAAS,MAAM;AAC/D,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAEO,SAAS,WAIZ,QAqBF;AAED,MAAI,OAAO,CAAC,aAAa,YAAY,OAAO,CAAC,aAAa,cAAc,OAAO,CAAC,aAAa,eAAe;AAC3G,WAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAAuC;AAAA,EACvF;AAEA,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAMA,YAAW,aAAa;AAAA,MAC7B,KAAK,OAAO,CAAC;AAAA,IACd,CAAC;AAED,WAAO,UAAUA,WAAU,OAAO,CAAC,CAAC;AAAA,EACrC;AAEA,QAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,MAAI;AAAQ,WAAO,UAAU,QAAQ,aAAa;AAElD,QAAM,WAAW,OAAO,eAAe,WAAW,aAAa,EAAE,KAAK,WAAW,CAAC,IAAI,aAAa,UAAW;AAE9G,SAAO,UAAU,UAAU,aAAa;AACzC;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["instance","drizzle"]}
|
package/mysql2/driver.cjs
CHANGED
|
@@ -24,6 +24,8 @@ __export(driver_exports, {
|
|
|
24
24
|
drizzle: () => drizzle
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(driver_exports);
|
|
27
|
+
var import_events = require("events");
|
|
28
|
+
var import_mysql2 = require("mysql2");
|
|
27
29
|
var import_entity = require("../entity.cjs");
|
|
28
30
|
var import_logger = require("../logger.cjs");
|
|
29
31
|
var import_db = require("../mysql-core/db.cjs");
|
|
@@ -46,7 +48,7 @@ class MySql2Driver {
|
|
|
46
48
|
class MySql2Database extends import_db.MySqlDatabase {
|
|
47
49
|
static [import_entity.entityKind] = "MySql2Database";
|
|
48
50
|
}
|
|
49
|
-
function
|
|
51
|
+
function construct(client, config = {}) {
|
|
50
52
|
const dialect = new import_dialect.MySqlDialect({ casing: config.casing });
|
|
51
53
|
let logger;
|
|
52
54
|
if (config.logger === true) {
|
|
@@ -82,6 +84,32 @@ function drizzle(client, config = {}) {
|
|
|
82
84
|
function isCallbackClient(client) {
|
|
83
85
|
return typeof client.promise === "function";
|
|
84
86
|
}
|
|
87
|
+
function drizzle(...params) {
|
|
88
|
+
if (params[0] instanceof import_events.EventEmitter) {
|
|
89
|
+
return construct(params[0], params[1]);
|
|
90
|
+
}
|
|
91
|
+
if (typeof params[0] === "object") {
|
|
92
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
93
|
+
if (client)
|
|
94
|
+
return construct(client, drizzleConfig);
|
|
95
|
+
const instance2 = typeof connection === "string" ? (0, import_mysql2.createPool)({
|
|
96
|
+
uri: connection
|
|
97
|
+
}) : (0, import_mysql2.createPool)(connection);
|
|
98
|
+
const db = construct(instance2, drizzleConfig);
|
|
99
|
+
return db;
|
|
100
|
+
}
|
|
101
|
+
const connectionString = params[0];
|
|
102
|
+
const instance = (0, import_mysql2.createPool)({
|
|
103
|
+
uri: connectionString
|
|
104
|
+
});
|
|
105
|
+
return construct(instance, params[1]);
|
|
106
|
+
}
|
|
107
|
+
((drizzle2) => {
|
|
108
|
+
function mock(config) {
|
|
109
|
+
return construct({}, config);
|
|
110
|
+
}
|
|
111
|
+
drizzle2.mock = mock;
|
|
112
|
+
})(drizzle || (drizzle = {}));
|
|
85
113
|
// Annotate the CommonJS export names for ESM import in node:
|
|
86
114
|
0 && (module.exports = {
|
|
87
115
|
MySql2Database,
|
package/mysql2/driver.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig, IfNotImported, ImportTypeError } from '~/utils.ts';\nimport { DrizzleError } from '../errors.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, schema, { logger: this.options.logger, mode });\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport class MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySql2Database';\n}\n\nexport type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: MySql2DrizzleConfig<TSchema> = {},\n): MySql2Database<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new MySqlDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst driver = new MySql2Driver(clientForInstance as MySql2Client, dialect, { logger });\n\tconst session = driver.createSession(schema, mode);\n\tconst db = new MySql2Database(dialect, session, schema as any, mode) as MySql2Database<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnyMySql2Connection = Pool | Connection | CallbackPool | CallbackConnection;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnyMySql2Connection = CallbackPool,\n>(\n\t...params: IfNotImported<\n\t\tCallbackPool,\n\t\t[ImportTypeError<'mysql2'>],\n\t\t[\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tMySql2DrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& MySql2DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolOptions;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): MySql2Database<TSchema> & {\n\t$client: TClient;\n} {\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (params[0] instanceof EventEmitter) {\n\t\treturn construct(params[0] as TClient, params[1] as MySql2DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (typeof params[0] === 'object') {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& MySql2DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? createPool({\n\t\t\t\turi: connection,\n\t\t\t})\n\t\t\t: createPool(connection!);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\tconst connectionString = params[0]!;\n\tconst instance = createPool({\n\t\turi: connectionString,\n\t});\n\n\treturn construct(instance, params[1]) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: MySql2DrizzleConfig<TSchema>,\n\t): MySql2Database<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAC7B,oBAA+G;AAE/G,oBAA2B;AAE3B,oBAA8B;AAC9B,gBAA8B;AAC9B,qBAA6B;AAE7B,uBAKO;AAEP,oBAA6B;AAE7B,qBAA8B;AAwB9B,IAAAA,aAA8B;AAlBvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA8B,CAAC,GACtC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,wBAAU,IAAY;AAAA,EASvC,cACC,QACA,MACiE;AACjE,WAAO,IAAI,6BAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAAA,EAClG;AACD;AAIO,MAAM,uBAEH,wBAAqE;AAAA,EAC9E,QAA0B,wBAAU,IAAY;AACjD;AAMA,SAAS,UAIR,QACA,SAAuC,CAAC,GAGvC;AACD,QAAM,UAAU,IAAI,4BAAa,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC1D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,4BAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,QAAI,OAAO,SAAS,QAAW;AAC9B,YAAM,IAAI,2BAAa;AAAA,QACtB,SACC;AAAA,MACF,CAAC;AAAA,IACF;AAEA,UAAM,mBAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,OAAO,OAAO,QAAQ;AAE5B,QAAM,SAAS,IAAI,aAAa,mBAAmC,SAAS,EAAE,OAAO,CAAC;AACtF,QAAM,UAAU,OAAO,cAAc,QAAQ,IAAI;AACjD,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,QAAe,IAAI;AACnE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;AAIO,SAAS,WAIZ,QAqBF;AAED,MAAI,OAAO,CAAC,aAAa,4BAAc;AACtC,WAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA6C;AAAA,EAC7F;AAEA,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAMC,YAAW,OAAO,eAAe,eACpC,0BAAW;AAAA,MACZ,KAAK;AAAA,IACN,CAAC,QACC,0BAAW,UAAW;AACzB,UAAM,KAAK,UAAUA,WAAU,aAAa;AAE5C,WAAO;AAAA,EACR;AAEA,QAAM,mBAAmB,OAAO,CAAC;AACjC,QAAM,eAAW,0BAAW;AAAA,IAC3B,KAAK;AAAA,EACN,CAAC;AAED,SAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AACrC;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["import_db","instance","drizzle"]}
|
package/mysql2/driver.d.cts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Connection as CallbackConnection, type Pool as CallbackPool, type PoolOptions } from 'mysql2';
|
|
2
|
+
import type { Connection, Pool } from 'mysql2/promise';
|
|
2
3
|
import { entityKind } from "../entity.cjs";
|
|
3
4
|
import type { Logger } from "../logger.cjs";
|
|
4
5
|
import { MySqlDatabase } from "../mysql-core/db.cjs";
|
|
5
6
|
import { MySqlDialect } from "../mysql-core/dialect.cjs";
|
|
6
7
|
import type { Mode } from "../mysql-core/session.cjs";
|
|
7
8
|
import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.cjs";
|
|
8
|
-
import type { DrizzleConfig } from "../utils.cjs";
|
|
9
|
+
import type { DrizzleConfig, IfNotImported, ImportTypeError } from "../utils.cjs";
|
|
9
10
|
import type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from "./session.cjs";
|
|
10
11
|
import { MySql2Session } from "./session.cjs";
|
|
11
12
|
export interface MySqlDriverOptions {
|
|
@@ -30,6 +31,25 @@ export type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record
|
|
|
30
31
|
schema?: undefined;
|
|
31
32
|
mode?: Mode;
|
|
32
33
|
});
|
|
33
|
-
export
|
|
34
|
+
export type AnyMySql2Connection = Pool | Connection | CallbackPool | CallbackConnection;
|
|
35
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends AnyMySql2Connection = CallbackPool>(...params: IfNotImported<CallbackPool, [
|
|
36
|
+
ImportTypeError<'mysql2'>
|
|
37
|
+
], [
|
|
38
|
+
TClient | string
|
|
39
|
+
] | [
|
|
40
|
+
TClient | string,
|
|
41
|
+
MySql2DrizzleConfig<TSchema>
|
|
42
|
+
] | [
|
|
43
|
+
(MySql2DrizzleConfig<TSchema> & ({
|
|
44
|
+
connection: string | PoolOptions;
|
|
45
|
+
} | {
|
|
46
|
+
client: TClient;
|
|
47
|
+
}))
|
|
48
|
+
]>): MySql2Database<TSchema> & {
|
|
34
49
|
$client: TClient;
|
|
35
50
|
};
|
|
51
|
+
export declare namespace drizzle {
|
|
52
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: MySql2DrizzleConfig<TSchema>): MySql2Database<TSchema> & {
|
|
53
|
+
$client: '$client is not available on drizzle.mock()';
|
|
54
|
+
};
|
|
55
|
+
}
|
package/mysql2/driver.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Connection as CallbackConnection, type Pool as CallbackPool, type PoolOptions } from 'mysql2';
|
|
2
|
+
import type { Connection, Pool } from 'mysql2/promise';
|
|
2
3
|
import { entityKind } from "../entity.js";
|
|
3
4
|
import type { Logger } from "../logger.js";
|
|
4
5
|
import { MySqlDatabase } from "../mysql-core/db.js";
|
|
5
6
|
import { MySqlDialect } from "../mysql-core/dialect.js";
|
|
6
7
|
import type { Mode } from "../mysql-core/session.js";
|
|
7
8
|
import { type RelationalSchemaConfig, type TablesRelationalConfig } from "../relations.js";
|
|
8
|
-
import type { DrizzleConfig } from "../utils.js";
|
|
9
|
+
import type { DrizzleConfig, IfNotImported, ImportTypeError } from "../utils.js";
|
|
9
10
|
import type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from "./session.js";
|
|
10
11
|
import { MySql2Session } from "./session.js";
|
|
11
12
|
export interface MySqlDriverOptions {
|
|
@@ -30,6 +31,25 @@ export type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record
|
|
|
30
31
|
schema?: undefined;
|
|
31
32
|
mode?: Mode;
|
|
32
33
|
});
|
|
33
|
-
export
|
|
34
|
+
export type AnyMySql2Connection = Pool | Connection | CallbackPool | CallbackConnection;
|
|
35
|
+
export declare function drizzle<TSchema extends Record<string, unknown> = Record<string, never>, TClient extends AnyMySql2Connection = CallbackPool>(...params: IfNotImported<CallbackPool, [
|
|
36
|
+
ImportTypeError<'mysql2'>
|
|
37
|
+
], [
|
|
38
|
+
TClient | string
|
|
39
|
+
] | [
|
|
40
|
+
TClient | string,
|
|
41
|
+
MySql2DrizzleConfig<TSchema>
|
|
42
|
+
] | [
|
|
43
|
+
(MySql2DrizzleConfig<TSchema> & ({
|
|
44
|
+
connection: string | PoolOptions;
|
|
45
|
+
} | {
|
|
46
|
+
client: TClient;
|
|
47
|
+
}))
|
|
48
|
+
]>): MySql2Database<TSchema> & {
|
|
34
49
|
$client: TClient;
|
|
35
50
|
};
|
|
51
|
+
export declare namespace drizzle {
|
|
52
|
+
function mock<TSchema extends Record<string, unknown> = Record<string, never>>(config?: MySql2DrizzleConfig<TSchema>): MySql2Database<TSchema> & {
|
|
53
|
+
$client: '$client is not available on drizzle.mock()';
|
|
54
|
+
};
|
|
55
|
+
}
|
package/mysql2/driver.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { createPool } from "mysql2";
|
|
1
3
|
import { entityKind } from "../entity.js";
|
|
2
4
|
import { DefaultLogger } from "../logger.js";
|
|
3
5
|
import { MySqlDatabase } from "../mysql-core/db.js";
|
|
@@ -23,7 +25,7 @@ import { MySqlDatabase as MySqlDatabase2 } from "../mysql-core/db.js";
|
|
|
23
25
|
class MySql2Database extends MySqlDatabase {
|
|
24
26
|
static [entityKind] = "MySql2Database";
|
|
25
27
|
}
|
|
26
|
-
function
|
|
28
|
+
function construct(client, config = {}) {
|
|
27
29
|
const dialect = new MySqlDialect({ casing: config.casing });
|
|
28
30
|
let logger;
|
|
29
31
|
if (config.logger === true) {
|
|
@@ -59,6 +61,32 @@ function drizzle(client, config = {}) {
|
|
|
59
61
|
function isCallbackClient(client) {
|
|
60
62
|
return typeof client.promise === "function";
|
|
61
63
|
}
|
|
64
|
+
function drizzle(...params) {
|
|
65
|
+
if (params[0] instanceof EventEmitter) {
|
|
66
|
+
return construct(params[0], params[1]);
|
|
67
|
+
}
|
|
68
|
+
if (typeof params[0] === "object") {
|
|
69
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
70
|
+
if (client)
|
|
71
|
+
return construct(client, drizzleConfig);
|
|
72
|
+
const instance2 = typeof connection === "string" ? createPool({
|
|
73
|
+
uri: connection
|
|
74
|
+
}) : createPool(connection);
|
|
75
|
+
const db = construct(instance2, drizzleConfig);
|
|
76
|
+
return db;
|
|
77
|
+
}
|
|
78
|
+
const connectionString = params[0];
|
|
79
|
+
const instance = createPool({
|
|
80
|
+
uri: connectionString
|
|
81
|
+
});
|
|
82
|
+
return construct(instance, params[1]);
|
|
83
|
+
}
|
|
84
|
+
((drizzle2) => {
|
|
85
|
+
function mock(config) {
|
|
86
|
+
return construct({}, config);
|
|
87
|
+
}
|
|
88
|
+
drizzle2.mock = mock;
|
|
89
|
+
})(drizzle || (drizzle = {}));
|
|
62
90
|
export {
|
|
63
91
|
MySql2Database,
|
|
64
92
|
MySql2Driver,
|
package/mysql2/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/mysql2/driver.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { type Connection as CallbackConnection, createPool, type Pool as CallbackPool, type PoolOptions } from 'mysql2';\nimport type { Connection, Pool } from 'mysql2/promise';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { Mode } from '~/mysql-core/session.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { DrizzleConfig, IfNotImported, ImportTypeError } from '~/utils.ts';\nimport { DrizzleError } from '../errors.ts';\nimport type { MySql2Client, MySql2PreparedQueryHKT, MySql2QueryResultHKT } from './session.ts';\nimport { MySql2Session } from './session.ts';\n\nexport interface MySqlDriverOptions {\n\tlogger?: Logger;\n}\n\nexport class MySql2Driver {\n\tstatic readonly [entityKind]: string = 'MySql2Driver';\n\n\tconstructor(\n\t\tprivate client: MySql2Client,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate options: MySqlDriverOptions = {},\n\t) {\n\t}\n\n\tcreateSession(\n\t\tschema: RelationalSchemaConfig<TablesRelationalConfig> | undefined,\n\t\tmode: Mode,\n\t): MySql2Session<Record<string, unknown>, TablesRelationalConfig> {\n\t\treturn new MySql2Session(this.client, this.dialect, schema, { logger: this.options.logger, mode });\n\t}\n}\n\nexport { MySqlDatabase } from '~/mysql-core/db.ts';\n\nexport class MySql2Database<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n> extends MySqlDatabase<MySql2QueryResultHKT, MySql2PreparedQueryHKT, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MySql2Database';\n}\n\nexport type MySql2DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> =\n\t& Omit<DrizzleConfig<TSchema>, 'schema'>\n\t& ({ schema: TSchema; mode: Mode } | { schema?: undefined; mode?: Mode });\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends Pool | Connection | CallbackPool | CallbackConnection = CallbackPool,\n>(\n\tclient: TClient,\n\tconfig: MySql2DrizzleConfig<TSchema> = {},\n): MySql2Database<TSchema> & {\n\t$client: TClient;\n} {\n\tconst dialect = new MySqlDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst clientForInstance = isCallbackClient(client) ? client.promise() : client;\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tif (config.mode === undefined) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t'You need to specify \"mode\": \"planetscale\" or \"default\" when providing a schema. Read more: https://orm.drizzle.team/docs/rqb#modes',\n\t\t\t});\n\t\t}\n\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst mode = config.mode ?? 'default';\n\n\tconst driver = new MySql2Driver(clientForInstance as MySql2Client, dialect, { logger });\n\tconst session = driver.createSession(schema, mode);\n\tconst db = new MySql2Database(dialect, session, schema as any, mode) as MySql2Database<TSchema>;\n\t(<any> db).$client = client;\n\n\treturn db as any;\n}\n\ninterface CallbackClient {\n\tpromise(): MySql2Client;\n}\n\nfunction isCallbackClient(client: any): client is CallbackClient {\n\treturn typeof client.promise === 'function';\n}\n\nexport type AnyMySql2Connection = Pool | Connection | CallbackPool | CallbackConnection;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTClient extends AnyMySql2Connection = CallbackPool,\n>(\n\t...params: IfNotImported<\n\t\tCallbackPool,\n\t\t[ImportTypeError<'mysql2'>],\n\t\t[\n\t\t\tTClient | string,\n\t\t] | [\n\t\t\tTClient | string,\n\t\t\tMySql2DrizzleConfig<TSchema>,\n\t\t] | [\n\t\t\t(\n\t\t\t\t& MySql2DrizzleConfig<TSchema>\n\t\t\t\t& ({\n\t\t\t\t\tconnection: string | PoolOptions;\n\t\t\t\t} | {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t})\n\t\t\t),\n\t\t]\n\t>\n): MySql2Database<TSchema> & {\n\t$client: TClient;\n} {\n\t// eslint-disable-next-line no-instanceof/no-instanceof\n\tif (params[0] instanceof EventEmitter) {\n\t\treturn construct(params[0] as TClient, params[1] as MySql2DrizzleConfig<TSchema> | undefined) as any;\n\t}\n\n\tif (typeof params[0] === 'object') {\n\t\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t\t& { connection?: PoolOptions | string; client?: TClient }\n\t\t\t& MySql2DrizzleConfig<TSchema>;\n\n\t\tif (client) return construct(client, drizzleConfig) as any;\n\n\t\tconst instance = typeof connection === 'string'\n\t\t\t? createPool({\n\t\t\t\turi: connection,\n\t\t\t})\n\t\t\t: createPool(connection!);\n\t\tconst db = construct(instance, drizzleConfig);\n\n\t\treturn db as any;\n\t}\n\n\tconst connectionString = params[0]!;\n\tconst instance = createPool({\n\t\turi: connectionString,\n\t});\n\n\treturn construct(instance, params[1]) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<TSchema extends Record<string, unknown> = Record<string, never>>(\n\t\tconfig?: MySql2DrizzleConfig<TSchema>,\n\t): MySql2Database<TSchema> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAgD,kBAA+D;AAE/G,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAE7B;AAAA,EACC;AAAA,EACA;AAAA,OAGM;AAEP,SAAS,oBAAoB;AAE7B,SAAS,qBAAqB;AAMvB,MAAM,aAAa;AAAA,EAGzB,YACS,QACA,SACA,UAA8B,CAAC,GACtC;AAHO;AACA;AACA;AAAA,EAET;AAAA,EAPA,QAAiB,UAAU,IAAY;AAAA,EASvC,cACC,QACA,MACiE;AACjE,WAAO,IAAI,cAAc,KAAK,QAAQ,KAAK,SAAS,QAAQ,EAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAAA,EAClG;AACD;AAEA,SAAS,iBAAAA,sBAAqB;AAEvB,MAAM,uBAEH,cAAqE;AAAA,EAC9E,QAA0B,UAAU,IAAY;AACjD;AAMA,SAAS,UAIR,QACA,SAAuC,CAAC,GAGvC;AACD,QAAM,UAAU,IAAI,aAAa,EAAE,QAAQ,OAAO,OAAO,CAAC;AAC1D,MAAI;AACJ,MAAI,OAAO,WAAW,MAAM;AAC3B,aAAS,IAAI,cAAc;AAAA,EAC5B,WAAW,OAAO,WAAW,OAAO;AACnC,aAAS,OAAO;AAAA,EACjB;AAEA,QAAM,oBAAoB,iBAAiB,MAAM,IAAI,OAAO,QAAQ,IAAI;AAExE,MAAI;AACJ,MAAI,OAAO,QAAQ;AAClB,QAAI,OAAO,SAAS,QAAW;AAC9B,YAAM,IAAI,aAAa;AAAA,QACtB,SACC;AAAA,MACF,CAAC;AAAA,IACF;AAEA,UAAM,eAAe;AAAA,MACpB,OAAO;AAAA,MACP;AAAA,IACD;AACA,aAAS;AAAA,MACR,YAAY,OAAO;AAAA,MACnB,QAAQ,aAAa;AAAA,MACrB,eAAe,aAAa;AAAA,IAC7B;AAAA,EACD;AAEA,QAAM,OAAO,OAAO,QAAQ;AAE5B,QAAM,SAAS,IAAI,aAAa,mBAAmC,SAAS,EAAE,OAAO,CAAC;AACtF,QAAM,UAAU,OAAO,cAAc,QAAQ,IAAI;AACjD,QAAM,KAAK,IAAI,eAAe,SAAS,SAAS,QAAe,IAAI;AACnE,EAAO,GAAI,UAAU;AAErB,SAAO;AACR;AAMA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,OAAO,OAAO,YAAY;AAClC;AAIO,SAAS,WAIZ,QAqBF;AAED,MAAI,OAAO,CAAC,aAAa,cAAc;AACtC,WAAO,UAAU,OAAO,CAAC,GAAc,OAAO,CAAC,CAA6C;AAAA,EAC7F;AAEA,MAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAClC,UAAM,EAAE,YAAY,QAAQ,GAAG,cAAc,IAAI,OAAO,CAAC;AAIzD,QAAI;AAAQ,aAAO,UAAU,QAAQ,aAAa;AAElD,UAAMC,YAAW,OAAO,eAAe,WACpC,WAAW;AAAA,MACZ,KAAK;AAAA,IACN,CAAC,IACC,WAAW,UAAW;AACzB,UAAM,KAAK,UAAUA,WAAU,aAAa;AAE5C,WAAO;AAAA,EACR;AAEA,QAAM,mBAAmB,OAAO,CAAC;AACjC,QAAM,WAAW,WAAW;AAAA,IAC3B,KAAK;AAAA,EACN,CAAC;AAED,SAAO,UAAU,UAAU,OAAO,CAAC,CAAC;AACrC;AAAA,CAEO,CAAUC,aAAV;AACC,WAAS,KACf,QAGC;AACD,WAAO,UAAU,CAAC,GAAU,MAAM;AAAA,EACnC;AANO,EAAAA,SAAS;AAAA,GADA;","names":["MySqlDatabase","instance","drizzle"]}
|
package/neon-http/driver.cjs
CHANGED
|
@@ -54,7 +54,7 @@ class NeonHttpDatabase extends import_db.PgDatabase {
|
|
|
54
54
|
return this.session.batch(batch);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
function
|
|
57
|
+
function construct(client, config = {}) {
|
|
58
58
|
const dialect = new import_dialect.PgDialect({ casing: config.casing });
|
|
59
59
|
let logger;
|
|
60
60
|
if (config.logger === true) {
|
|
@@ -84,6 +84,31 @@ function drizzle(client, config = {}) {
|
|
|
84
84
|
db.$client = client;
|
|
85
85
|
return db;
|
|
86
86
|
}
|
|
87
|
+
function drizzle(...params) {
|
|
88
|
+
if (typeof params[0] === "function") {
|
|
89
|
+
return construct(params[0], params[1]);
|
|
90
|
+
}
|
|
91
|
+
if (typeof params[0] === "object") {
|
|
92
|
+
const { connection, client, ...drizzleConfig } = params[0];
|
|
93
|
+
if (client)
|
|
94
|
+
return construct(client, drizzleConfig);
|
|
95
|
+
if (typeof connection === "object") {
|
|
96
|
+
const { connectionString, ...options } = connection;
|
|
97
|
+
const instance3 = (0, import_serverless.neon)(connectionString, options);
|
|
98
|
+
return construct(instance3, drizzleConfig);
|
|
99
|
+
}
|
|
100
|
+
const instance2 = (0, import_serverless.neon)(connection);
|
|
101
|
+
return construct(instance2, drizzleConfig);
|
|
102
|
+
}
|
|
103
|
+
const instance = (0, import_serverless.neon)(params[0]);
|
|
104
|
+
return construct(instance, params[1]);
|
|
105
|
+
}
|
|
106
|
+
((drizzle2) => {
|
|
107
|
+
function mock(config) {
|
|
108
|
+
return construct({}, config);
|
|
109
|
+
}
|
|
110
|
+
drizzle2.mock = mock;
|
|
111
|
+
})(drizzle || (drizzle = {}));
|
|
87
112
|
// Annotate the CommonJS export names for ESM import in node:
|
|
88
113
|
0 && (module.exports = {
|
|
89
114
|
NeonHttpDatabase,
|