@auth/drizzle-adapter 0.3.1 → 0.3.2
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/index.d.ts.map +1 -1
- package/index.js +8 -6
- package/lib/mysql.d.ts +2 -3
- package/lib/mysql.d.ts.map +1 -1
- package/lib/mysql.js +1 -4
- package/lib/pg.d.ts +2 -3
- package/lib/pg.d.ts.map +1 -1
- package/lib/sqlite.d.ts +1 -1
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/utils.d.ts +0 -3
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +1 -12
- package/package.json +2 -2
- package/src/index.ts +11 -19
- package/src/lib/mysql.ts +3 -6
- package/src/lib/pg.ts +2 -2
- package/src/lib/sqlite.ts +1 -1
- package/src/lib/utils.ts +0 -14
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAG1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+NI;AACJ,wBAAgB,cAAc,CAAC,SAAS,SAAS,gBAAgB,EAC/D,EAAE,EAAE,SAAS,EACb,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GACzB,OAAO,CAYT"}
|
package/index.js
CHANGED
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @module @auth/drizzle-adapter
|
|
17
17
|
*/
|
|
18
|
+
import { MySqlDatabase } from "drizzle-orm/mysql-core";
|
|
19
|
+
import { PgDatabase } from "drizzle-orm/pg-core";
|
|
20
|
+
import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";
|
|
18
21
|
import { mySqlDrizzleAdapter } from "./lib/mysql.js";
|
|
19
22
|
import { pgDrizzleAdapter } from "./lib/pg.js";
|
|
20
23
|
import { SQLiteDrizzleAdapter } from "./lib/sqlite.js";
|
|
21
|
-
import {
|
|
24
|
+
import { is } from "drizzle-orm";
|
|
22
25
|
/**
|
|
23
26
|
* Add the adapter to your `pages/api/[...nextauth].ts` next-auth configuration object.
|
|
24
27
|
*
|
|
@@ -244,15 +247,14 @@ import { isMySqlDatabase, isPgDatabase, isSQLiteDatabase, } from "./lib/utils.js
|
|
|
244
247
|
*
|
|
245
248
|
**/
|
|
246
249
|
export function DrizzleAdapter(db, table) {
|
|
247
|
-
if (
|
|
248
|
-
// We need to cast to unknown since the type overlaps (PScale is MySQL based)
|
|
250
|
+
if (is(db, MySqlDatabase)) {
|
|
249
251
|
return mySqlDrizzleAdapter(db, table);
|
|
250
252
|
}
|
|
251
|
-
if (
|
|
253
|
+
else if (is(db, PgDatabase)) {
|
|
252
254
|
return pgDrizzleAdapter(db, table);
|
|
253
255
|
}
|
|
254
|
-
if (
|
|
256
|
+
else if (is(db, BaseSQLiteDatabase)) {
|
|
255
257
|
return SQLiteDrizzleAdapter(db, table);
|
|
256
258
|
}
|
|
257
|
-
throw new Error(
|
|
259
|
+
throw new Error(`Unsupported database type (${typeof db}) in Auth.js Drizzle adapter.`);
|
|
258
260
|
}
|
package/lib/mysql.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { MySqlTableFn } from "drizzle-orm/mysql-core";
|
|
1
|
+
import { MySqlTableFn, MySqlDatabase } from "drizzle-orm/mysql-core";
|
|
2
2
|
import type { Adapter } from "@auth/core/adapters";
|
|
3
|
-
import type { MySql2Database } from "drizzle-orm/mysql2";
|
|
4
3
|
export declare function createTables(mySqlTable: MySqlTableFn): {
|
|
5
4
|
users: import("drizzle-orm/select.types.d-b947a018").aw<{
|
|
6
5
|
name: "user";
|
|
@@ -222,5 +221,5 @@ export declare function createTables(mySqlTable: MySqlTableFn): {
|
|
|
222
221
|
}>;
|
|
223
222
|
};
|
|
224
223
|
export type DefaultSchema = ReturnType<typeof createTables>;
|
|
225
|
-
export declare function mySqlDrizzleAdapter(client:
|
|
224
|
+
export declare function mySqlDrizzleAdapter(client: InstanceType<typeof MySqlDatabase>, tableFn?: MySqlTableFn<undefined>): Adapter;
|
|
226
225
|
//# sourceMappingURL=mysql.d.ts.map
|
package/lib/mysql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../src/lib/mysql.ts"],"names":[],"mappings":"AACA,OAAO,EAML,YAAY,
|
|
1
|
+
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../src/lib/mysql.ts"],"names":[],"mappings":"AACA,OAAO,EAML,YAAY,EACZ,aAAa,EACd,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAElE,wBAAgB,YAAY,CAAC,UAAU,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6DpD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAE3D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,CAAC,OAAO,aAAa,CAAC,EAC1C,OAAO,0BAAsB,GAC5B,OAAO,CAsLT"}
|
package/lib/mysql.js
CHANGED
|
@@ -121,10 +121,7 @@ export function mySqlDrizzleAdapter(client, tableFn = defaultMySqlTableFn) {
|
|
|
121
121
|
.then((res) => res[0]);
|
|
122
122
|
},
|
|
123
123
|
async linkAccount(rawAccount) {
|
|
124
|
-
await client
|
|
125
|
-
.insert(accounts)
|
|
126
|
-
.values(rawAccount)
|
|
127
|
-
.then((res) => res[0]);
|
|
124
|
+
await client.insert(accounts).values(rawAccount);
|
|
128
125
|
},
|
|
129
126
|
async getUserByAccount(account) {
|
|
130
127
|
const dbAccount = (await client
|
package/lib/pg.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { PgTableFn } from "drizzle-orm/pg-core";
|
|
2
|
-
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
1
|
+
import { PgTableFn, PgDatabase } from "drizzle-orm/pg-core";
|
|
3
2
|
import type { Adapter } from "@auth/core/adapters";
|
|
4
3
|
export declare function createTables(pgTable: PgTableFn): {
|
|
5
4
|
users: import("drizzle-orm/db.d-b9835153").az<{
|
|
@@ -222,5 +221,5 @@ export declare function createTables(pgTable: PgTableFn): {
|
|
|
222
221
|
}>;
|
|
223
222
|
};
|
|
224
223
|
export type DefaultSchema = ReturnType<typeof createTables>;
|
|
225
|
-
export declare function pgDrizzleAdapter(client:
|
|
224
|
+
export declare function pgDrizzleAdapter(client: InstanceType<typeof PgDatabase>, tableFn?: PgTableFn<undefined>): Adapter;
|
|
226
225
|
//# sourceMappingURL=pg.d.ts.map
|
package/lib/pg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../src/lib/pg.ts"],"names":[],"mappings":"AACA,OAAO,EAML,SAAS,
|
|
1
|
+
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../src/lib/pg.ts"],"names":[],"mappings":"AACA,OAAO,EAML,SAAS,EACT,UAAU,EACX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAElE,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoD9C;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAE3D,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,CAAC,OAAO,UAAU,CAAC,EACvC,OAAO,uBAAmB,GACzB,OAAO,CAgKT"}
|
package/lib/sqlite.d.ts
CHANGED
|
@@ -221,5 +221,5 @@ export declare function createTables(sqliteTable: SQLiteTableFn): {
|
|
|
221
221
|
}>;
|
|
222
222
|
};
|
|
223
223
|
export type DefaultSchema = ReturnType<typeof createTables>;
|
|
224
|
-
export declare function SQLiteDrizzleAdapter(client:
|
|
224
|
+
export declare function SQLiteDrizzleAdapter(client: InstanceType<typeof BaseSQLiteDatabase>, tableFn?: SQLiteTableFn<undefined>): Adapter;
|
|
225
225
|
//# sourceMappingURL=sqlite.d.ts.map
|
package/lib/sqlite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/lib/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,kBAAkB,EAClB,aAAa,EACd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAElE,wBAAgB,YAAY,CAAC,WAAW,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDtD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAE3D,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/lib/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,kBAAkB,EAClB,aAAa,EACd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAElE,wBAAgB,YAAY,CAAC,WAAW,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDtD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAE3D,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,CAAC,OAAO,kBAAkB,CAAC,EAC/C,OAAO,2BAAuB,GAC7B,OAAO,CA2IT"}
|
package/lib/utils.d.ts
CHANGED
|
@@ -18,7 +18,4 @@ export interface MinimumSchema {
|
|
|
18
18
|
export type SqlFlavorOptions = AnyMySqlDatabase | AnyPgDatabase | AnySQLiteDatabase;
|
|
19
19
|
export type ClientFlavors<Flavor> = Flavor extends AnyMySqlDatabase ? MinimumSchema["mysql"] : Flavor extends AnyPgDatabase ? MinimumSchema["pg"] : Flavor extends AnySQLiteDatabase ? MinimumSchema["sqlite"] : never;
|
|
20
20
|
export type TableFn<Flavor> = Flavor extends AnyMySqlDatabase ? MySqlTableFn : Flavor extends AnyPgDatabase ? PgTableFn : Flavor extends AnySQLiteDatabase ? SQLiteTableFn : AnySQLiteTable;
|
|
21
|
-
export declare function isMySqlDatabase(db: any): db is MySqlDatabase<any, any, any, any>;
|
|
22
|
-
export declare function isPgDatabase(db: any): db is PgDatabase<any, any, any>;
|
|
23
|
-
export declare function isSQLiteDatabase(db: any): db is AnySQLiteDatabase;
|
|
24
21
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,aAAa,CAAA;AAEhE,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACtD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACrD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEtE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAClD,EAAE,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACzC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACtD;AAED,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,aAAa,GACb,iBAAiB,CAAA;AAErB,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,SAAS,gBAAgB,GAC/D,aAAa,CAAC,OAAO,CAAC,GACtB,MAAM,SAAS,aAAa,GAC5B,aAAa,CAAC,IAAI,CAAC,GACnB,MAAM,SAAS,iBAAiB,GAChC,aAAa,CAAC,QAAQ,CAAC,GACvB,KAAK,CAAA;AAET,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI,MAAM,SAAS,gBAAgB,GACzD,YAAY,GACZ,MAAM,SAAS,aAAa,GAC5B,SAAS,GACT,MAAM,SAAS,iBAAiB,GAChC,aAAa,GACb,cAAc,CAAA
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,aAAa,CAAA;AAEhE,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACtD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACrD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEtE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAClD,EAAE,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACzC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACtD;AAED,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,aAAa,GACb,iBAAiB,CAAA;AAErB,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,SAAS,gBAAgB,GAC/D,aAAa,CAAC,OAAO,CAAC,GACtB,MAAM,SAAS,aAAa,GAC5B,aAAa,CAAC,IAAI,CAAC,GACnB,MAAM,SAAS,iBAAiB,GAChC,aAAa,CAAC,QAAQ,CAAC,GACvB,KAAK,CAAA;AAET,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI,MAAM,SAAS,gBAAgB,GACzD,YAAY,GACZ,MAAM,SAAS,aAAa,GAC5B,SAAS,GACT,MAAM,SAAS,iBAAiB,GAChC,aAAa,GACb,cAAc,CAAA"}
|
package/lib/utils.js
CHANGED
|
@@ -1,12 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { PgDatabase } from "drizzle-orm/pg-core";
|
|
3
|
-
import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";
|
|
4
|
-
export function isMySqlDatabase(db) {
|
|
5
|
-
return db instanceof MySqlDatabase;
|
|
6
|
-
}
|
|
7
|
-
export function isPgDatabase(db) {
|
|
8
|
-
return db instanceof PgDatabase;
|
|
9
|
-
}
|
|
10
|
-
export function isSQLiteDatabase(db) {
|
|
11
|
-
return db instanceof BaseSQLiteDatabase;
|
|
12
|
-
}
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@auth/drizzle-adapter",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Drizzle adapter for Auth.js.",
|
|
5
5
|
"homepage": "https://authjs.dev",
|
|
6
6
|
"repository": "https://github.com/nextauthjs/next-auth",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@auth/core": "0.
|
|
39
|
+
"@auth/core": "0.12.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/better-sqlite3": "^7.6.4",
|
package/src/index.ts
CHANGED
|
@@ -16,19 +16,14 @@
|
|
|
16
16
|
* @module @auth/drizzle-adapter
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import { MySqlTableFn } from "drizzle-orm/mysql-core
|
|
20
|
-
import { PgTableFn } from "drizzle-orm/pg-core
|
|
21
|
-
import { SQLiteTableFn } from "drizzle-orm/sqlite-core
|
|
19
|
+
import { MySqlDatabase, MySqlTableFn } from "drizzle-orm/mysql-core"
|
|
20
|
+
import { PgDatabase, PgTableFn } from "drizzle-orm/pg-core"
|
|
21
|
+
import { BaseSQLiteDatabase, SQLiteTableFn } from "drizzle-orm/sqlite-core"
|
|
22
22
|
import { mySqlDrizzleAdapter } from "./lib/mysql.js"
|
|
23
23
|
import { pgDrizzleAdapter } from "./lib/pg.js"
|
|
24
24
|
import { SQLiteDrizzleAdapter } from "./lib/sqlite.js"
|
|
25
|
-
import {
|
|
26
|
-
|
|
27
|
-
isPgDatabase,
|
|
28
|
-
isSQLiteDatabase,
|
|
29
|
-
SqlFlavorOptions,
|
|
30
|
-
TableFn,
|
|
31
|
-
} from "./lib/utils.js"
|
|
25
|
+
import { SqlFlavorOptions, TableFn } from "./lib/utils.js"
|
|
26
|
+
import { is } from "drizzle-orm"
|
|
32
27
|
|
|
33
28
|
import type { Adapter } from "@auth/core/adapters"
|
|
34
29
|
|
|
@@ -260,18 +255,15 @@ export function DrizzleAdapter<SqlFlavor extends SqlFlavorOptions>(
|
|
|
260
255
|
db: SqlFlavor,
|
|
261
256
|
table?: TableFn<SqlFlavor>
|
|
262
257
|
): Adapter {
|
|
263
|
-
if (
|
|
264
|
-
// We need to cast to unknown since the type overlaps (PScale is MySQL based)
|
|
258
|
+
if (is(db, MySqlDatabase)) {
|
|
265
259
|
return mySqlDrizzleAdapter(db, table as MySqlTableFn)
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
if (isPgDatabase(db)) {
|
|
260
|
+
} else if (is(db, PgDatabase)) {
|
|
269
261
|
return pgDrizzleAdapter(db, table as PgTableFn)
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
if (isSQLiteDatabase(db)) {
|
|
262
|
+
} else if (is(db, BaseSQLiteDatabase)) {
|
|
273
263
|
return SQLiteDrizzleAdapter(db, table as SQLiteTableFn)
|
|
274
264
|
}
|
|
275
265
|
|
|
276
|
-
throw new Error(
|
|
266
|
+
throw new Error(
|
|
267
|
+
`Unsupported database type (${typeof db}) in Auth.js Drizzle adapter.`
|
|
268
|
+
)
|
|
277
269
|
}
|
package/src/lib/mysql.ts
CHANGED
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
primaryKey,
|
|
7
7
|
varchar,
|
|
8
8
|
MySqlTableFn,
|
|
9
|
+
MySqlDatabase,
|
|
9
10
|
} from "drizzle-orm/mysql-core"
|
|
10
11
|
|
|
11
12
|
import type { Adapter, AdapterAccount } from "@auth/core/adapters"
|
|
12
|
-
import type { MySql2Database } from "drizzle-orm/mysql2"
|
|
13
13
|
|
|
14
14
|
export function createTables(mySqlTable: MySqlTableFn) {
|
|
15
15
|
const users = mySqlTable("user", {
|
|
@@ -77,7 +77,7 @@ export function createTables(mySqlTable: MySqlTableFn) {
|
|
|
77
77
|
export type DefaultSchema = ReturnType<typeof createTables>
|
|
78
78
|
|
|
79
79
|
export function mySqlDrizzleAdapter(
|
|
80
|
-
client:
|
|
80
|
+
client: InstanceType<typeof MySqlDatabase>,
|
|
81
81
|
tableFn = defaultMySqlTableFn
|
|
82
82
|
): Adapter {
|
|
83
83
|
const { users, accounts, sessions, verificationTokens } =
|
|
@@ -164,10 +164,7 @@ export function mySqlDrizzleAdapter(
|
|
|
164
164
|
.then((res) => res[0])
|
|
165
165
|
},
|
|
166
166
|
async linkAccount(rawAccount) {
|
|
167
|
-
await client
|
|
168
|
-
.insert(accounts)
|
|
169
|
-
.values(rawAccount)
|
|
170
|
-
.then((res) => res[0])
|
|
167
|
+
await client.insert(accounts).values(rawAccount)
|
|
171
168
|
},
|
|
172
169
|
async getUserByAccount(account) {
|
|
173
170
|
const dbAccount =
|
package/src/lib/pg.ts
CHANGED
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
primaryKey,
|
|
7
7
|
integer,
|
|
8
8
|
PgTableFn,
|
|
9
|
+
PgDatabase,
|
|
9
10
|
} from "drizzle-orm/pg-core"
|
|
10
11
|
|
|
11
|
-
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js"
|
|
12
12
|
import type { Adapter, AdapterAccount } from "@auth/core/adapters"
|
|
13
13
|
|
|
14
14
|
export function createTables(pgTable: PgTableFn) {
|
|
@@ -68,7 +68,7 @@ export function createTables(pgTable: PgTableFn) {
|
|
|
68
68
|
export type DefaultSchema = ReturnType<typeof createTables>
|
|
69
69
|
|
|
70
70
|
export function pgDrizzleAdapter(
|
|
71
|
-
client:
|
|
71
|
+
client: InstanceType<typeof PgDatabase>,
|
|
72
72
|
tableFn = defaultPgTableFn
|
|
73
73
|
): Adapter {
|
|
74
74
|
const { users, accounts, sessions, verificationTokens } =
|
package/src/lib/sqlite.ts
CHANGED
|
@@ -67,7 +67,7 @@ export function createTables(sqliteTable: SQLiteTableFn) {
|
|
|
67
67
|
export type DefaultSchema = ReturnType<typeof createTables>
|
|
68
68
|
|
|
69
69
|
export function SQLiteDrizzleAdapter(
|
|
70
|
-
client:
|
|
70
|
+
client: InstanceType<typeof BaseSQLiteDatabase>,
|
|
71
71
|
tableFn = defaultSqliteTableFn
|
|
72
72
|
): Adapter {
|
|
73
73
|
const { users, accounts, sessions, verificationTokens } =
|
package/src/lib/utils.ts
CHANGED
|
@@ -39,17 +39,3 @@ export type TableFn<Flavor> = Flavor extends AnyMySqlDatabase
|
|
|
39
39
|
: Flavor extends AnySQLiteDatabase
|
|
40
40
|
? SQLiteTableFn
|
|
41
41
|
: AnySQLiteTable
|
|
42
|
-
|
|
43
|
-
export function isMySqlDatabase(
|
|
44
|
-
db: any
|
|
45
|
-
): db is MySqlDatabase<any, any, any, any> {
|
|
46
|
-
return db instanceof MySqlDatabase
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export function isPgDatabase(db: any): db is PgDatabase<any, any, any> {
|
|
50
|
-
return db instanceof PgDatabase
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export function isSQLiteDatabase(db: any): db is AnySQLiteDatabase {
|
|
54
|
-
return db instanceof BaseSQLiteDatabase
|
|
55
|
-
}
|