@lifeworld/adapter-drizzle
Version:
Drizzle ORM adapter for Lucia
91 lines (90 loc) • 2.89 kB
TypeScript
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;
}>;