@lifeworld/adapter-drizzle
Version:
Drizzle ORM adapter for Lucia
93 lines (92 loc) • 2.97 kB
TypeScript
import type { Adapter, DatabaseSession, DatabaseUser, UserId } from "lucia";
import type { SQLiteColumn, BaseSQLiteDatabase, SQLiteTableWithColumns } from "drizzle-orm/sqlite-core";
export declare class DrizzleSQLiteAdapter implements Adapter {
private db;
private sessionTable;
private userTable;
constructor(db: BaseSQLiteDatabase<any, any, any>, sessionTable: SQLiteSessionTable, userTable: SQLiteUserTable);
deleteSession(sessionId: string): Promise<void>;
deleteUserSessions(userId: UserId): Promise<void>;
getSessionAndUser(sessionId: string): Promise<[session: DatabaseSession | null, user: DatabaseUser | null]>;
private getSession;
private getUserFromSessionId;
getUserSessions(userId: UserId): Promise<DatabaseSession[]>;
setSession(session: DatabaseSession): Promise<void>;
updateSessionExpiration(sessionId: string, expiresAt: Date): Promise<void>;
deleteExpiredSessions(): Promise<void>;
}
export type SQLiteUserTable = SQLiteTableWithColumns<{
dialect: "sqlite";
columns: {
id: SQLiteColumn<{
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 SQLiteSessionTable = SQLiteTableWithColumns<{
dialect: any;
columns: {
id: SQLiteColumn<{
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: SQLiteColumn<{
dataType: any;
notNull: true;
enumValues: any;
tableName: any;
columnType: any;
data: number;
driverParam: any;
hasDefault: false;
name: any;
isPrimaryKey: any;
isAutoincrement: any;
hasRuntimeDefault: any;
generated: any;
}, object>;
userId: SQLiteColumn<{
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;
}>;