UNPKG

@lifeworld/adapter-drizzle

Version:
91 lines (90 loc) 2.89 kB
import type { Adapter, DatabaseSession, DatabaseUser, UserId } from "lucia"; import type { MySqlColumn, MySqlDatabase, MySqlTableWithColumns } from "drizzle-orm/mysql-core"; export declare class DrizzleMySQLAdapter implements Adapter { private db; private sessionTable; private userTable; constructor(db: MySqlDatabase<any, any, any>, sessionTable: MySQLSessionTable, userTable: MySQLUserTable); deleteSession(sessionId: string): Promise<void>; deleteUserSessions(userId: UserId): Promise<void>; getSessionAndUser(sessionId: string): Promise<[session: DatabaseSession | null, user: DatabaseUser | null]>; getUserSessions(userId: UserId): Promise<DatabaseSession[]>; setSession(session: DatabaseSession): Promise<void>; updateSessionExpiration(sessionId: string, expiresAt: Date): Promise<void>; deleteExpiredSessions(): Promise<void>; } export type MySQLUserTable = MySqlTableWithColumns<{ dialect: "mysql"; columns: { id: MySqlColumn<{ name: any; tableName: any; dataType: any; columnType: any; data: UserId; driverParam: any; notNull: true; hasDefault: boolean; enumValues: any; baseColumn: any; isPrimaryKey: any; isAutoincrement: any; hasRuntimeDefault: any; generated: any; }, object>; }; schema: any; name: any; }>; export type MySQLSessionTable = MySqlTableWithColumns<{ dialect: "mysql"; columns: { id: MySqlColumn<{ dataType: any; notNull: true; enumValues: any; tableName: any; columnType: any; data: string; driverParam: any; hasDefault: false; name: any; isPrimaryKey: any; isAutoincrement: any; hasRuntimeDefault: any; generated: any; }, object>; expiresAt: MySqlColumn<{ dataType: any; notNull: true; enumValues: any; tableName: any; columnType: any; data: Date; driverParam: any; hasDefault: false; name: any; isPrimaryKey: any; isAutoincrement: any; hasRuntimeDefault: any; generated: any; }, object>; userId: MySqlColumn<{ dataType: any; notNull: true; enumValues: any; tableName: any; columnType: any; data: UserId; driverParam: any; hasDefault: false; name: any; isPrimaryKey: any; isAutoincrement: any; hasRuntimeDefault: any; generated: any; }, object>; }; schema: any; name: any; }>;