mirror of
https://github.com/SrIzan10/next-auth.git
synced 2026-05-01 10:55:20 +00:00
Compare commits
2 Commits
@auth/core
...
@auth/driz
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
99035b98f9 | ||
|
|
fabb0525d1 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@auth/drizzle-adapter",
|
||||
"version": "0.3.1",
|
||||
"version": "0.3.2",
|
||||
"description": "Drizzle adapter for Auth.js.",
|
||||
"homepage": "https://authjs.dev",
|
||||
"repository": "https://github.com/nextauthjs/next-auth",
|
||||
|
||||
@@ -16,19 +16,14 @@
|
||||
* @module @auth/drizzle-adapter
|
||||
*/
|
||||
|
||||
import { MySqlTableFn } from "drizzle-orm/mysql-core/index.js"
|
||||
import { PgTableFn } from "drizzle-orm/pg-core/index.js"
|
||||
import { SQLiteTableFn } from "drizzle-orm/sqlite-core/index.js"
|
||||
import { MySqlDatabase, MySqlTableFn } from "drizzle-orm/mysql-core"
|
||||
import { PgDatabase, PgTableFn } from "drizzle-orm/pg-core"
|
||||
import { BaseSQLiteDatabase, SQLiteTableFn } from "drizzle-orm/sqlite-core"
|
||||
import { mySqlDrizzleAdapter } from "./lib/mysql.js"
|
||||
import { pgDrizzleAdapter } from "./lib/pg.js"
|
||||
import { SQLiteDrizzleAdapter } from "./lib/sqlite.js"
|
||||
import {
|
||||
isMySqlDatabase,
|
||||
isPgDatabase,
|
||||
isSQLiteDatabase,
|
||||
SqlFlavorOptions,
|
||||
TableFn,
|
||||
} from "./lib/utils.js"
|
||||
import { SqlFlavorOptions, TableFn } from "./lib/utils.js"
|
||||
import { is } from "drizzle-orm"
|
||||
|
||||
import type { Adapter } from "@auth/core/adapters"
|
||||
|
||||
@@ -260,18 +255,15 @@ export function DrizzleAdapter<SqlFlavor extends SqlFlavorOptions>(
|
||||
db: SqlFlavor,
|
||||
table?: TableFn<SqlFlavor>
|
||||
): Adapter {
|
||||
if (isMySqlDatabase(db)) {
|
||||
// We need to cast to unknown since the type overlaps (PScale is MySQL based)
|
||||
if (is(db, MySqlDatabase)) {
|
||||
return mySqlDrizzleAdapter(db, table as MySqlTableFn)
|
||||
}
|
||||
|
||||
if (isPgDatabase(db)) {
|
||||
} else if (is(db, PgDatabase)) {
|
||||
return pgDrizzleAdapter(db, table as PgTableFn)
|
||||
}
|
||||
|
||||
if (isSQLiteDatabase(db)) {
|
||||
} else if (is(db, BaseSQLiteDatabase)) {
|
||||
return SQLiteDrizzleAdapter(db, table as SQLiteTableFn)
|
||||
}
|
||||
|
||||
throw new Error("Unsupported database type in Auth.js Drizzle adapter.")
|
||||
throw new Error(
|
||||
`Unsupported database type (${typeof db}) in Auth.js Drizzle adapter.`
|
||||
)
|
||||
}
|
||||
|
||||
@@ -6,10 +6,10 @@ import {
|
||||
primaryKey,
|
||||
varchar,
|
||||
MySqlTableFn,
|
||||
MySqlDatabase,
|
||||
} from "drizzle-orm/mysql-core"
|
||||
|
||||
import type { Adapter, AdapterAccount } from "@auth/core/adapters"
|
||||
import type { MySql2Database } from "drizzle-orm/mysql2"
|
||||
|
||||
export function createTables(mySqlTable: MySqlTableFn) {
|
||||
const users = mySqlTable("user", {
|
||||
@@ -77,7 +77,7 @@ export function createTables(mySqlTable: MySqlTableFn) {
|
||||
export type DefaultSchema = ReturnType<typeof createTables>
|
||||
|
||||
export function mySqlDrizzleAdapter(
|
||||
client: MySql2Database<Record<string, never>>,
|
||||
client: InstanceType<typeof MySqlDatabase>,
|
||||
tableFn = defaultMySqlTableFn
|
||||
): Adapter {
|
||||
const { users, accounts, sessions, verificationTokens } =
|
||||
@@ -164,10 +164,7 @@ export function mySqlDrizzleAdapter(
|
||||
.then((res) => res[0])
|
||||
},
|
||||
async linkAccount(rawAccount) {
|
||||
await client
|
||||
.insert(accounts)
|
||||
.values(rawAccount)
|
||||
.then((res) => res[0])
|
||||
await client.insert(accounts).values(rawAccount)
|
||||
},
|
||||
async getUserByAccount(account) {
|
||||
const dbAccount =
|
||||
|
||||
@@ -6,9 +6,9 @@ import {
|
||||
primaryKey,
|
||||
integer,
|
||||
PgTableFn,
|
||||
PgDatabase,
|
||||
} from "drizzle-orm/pg-core"
|
||||
|
||||
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js"
|
||||
import type { Adapter, AdapterAccount } from "@auth/core/adapters"
|
||||
|
||||
export function createTables(pgTable: PgTableFn) {
|
||||
@@ -68,7 +68,7 @@ export function createTables(pgTable: PgTableFn) {
|
||||
export type DefaultSchema = ReturnType<typeof createTables>
|
||||
|
||||
export function pgDrizzleAdapter(
|
||||
client: PostgresJsDatabase<Record<string, never>>,
|
||||
client: InstanceType<typeof PgDatabase>,
|
||||
tableFn = defaultPgTableFn
|
||||
): Adapter {
|
||||
const { users, accounts, sessions, verificationTokens } =
|
||||
|
||||
@@ -67,7 +67,7 @@ export function createTables(sqliteTable: SQLiteTableFn) {
|
||||
export type DefaultSchema = ReturnType<typeof createTables>
|
||||
|
||||
export function SQLiteDrizzleAdapter(
|
||||
client: BaseSQLiteDatabase<any, any>,
|
||||
client: InstanceType<typeof BaseSQLiteDatabase>,
|
||||
tableFn = defaultSqliteTableFn
|
||||
): Adapter {
|
||||
const { users, accounts, sessions, verificationTokens } =
|
||||
|
||||
@@ -39,17 +39,3 @@ export type TableFn<Flavor> = Flavor extends AnyMySqlDatabase
|
||||
: Flavor extends AnySQLiteDatabase
|
||||
? SQLiteTableFn
|
||||
: AnySQLiteTable
|
||||
|
||||
export function isMySqlDatabase(
|
||||
db: any
|
||||
): db is MySqlDatabase<any, any, any, any> {
|
||||
return db instanceof MySqlDatabase
|
||||
}
|
||||
|
||||
export function isPgDatabase(db: any): db is PgDatabase<any, any, any> {
|
||||
return db instanceof PgDatabase
|
||||
}
|
||||
|
||||
export function isSQLiteDatabase(db: any): db is AnySQLiteDatabase {
|
||||
return db instanceof BaseSQLiteDatabase
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user