fix: remove jank prisma script, and move to generated prisma client

This commit is contained in:
DecDuck
2025-05-08 16:17:23 +10:00
parent 29f3094ad4
commit 125fe9e6e2
60 changed files with 153 additions and 168 deletions

View File

@ -0,0 +1,35 @@
import cacheHandler from "../cache";
import type { Session, SessionProvider } from "./types";
export default function createCacheSessionProvider() {
const sessions = cacheHandler.createCache<Session>("cacheSessionProvider");
const memoryProvider: SessionProvider = {
async setSession(token, data) {
await sessions.set(token, data);
return true;
},
async getSession<T extends Session>(token: string): Promise<T | undefined> {
const session = await sessions.get(token);
return session ? (session as T) : undefined; // Ensure undefined is returned if session is not found
},
async updateSession(token, data) {
return await this.setSession(token, data);
},
async removeSession(token) {
await sessions.remove(token);
return true;
},
async cleanupSessions() {
const now = new Date();
for (const token of await sessions.getKeys()) {
const session = await sessions.get(token);
if (!session) continue;
// if expires at time is before now, the session is expired
if (session.expiresAt < now) await this.removeSession(token);
}
},
};
return memoryProvider;
}

View File

@ -3,9 +3,9 @@ import type { Session, SessionProvider } from "./types";
import { randomUUID } from "node:crypto";
import { parse as parseCookies } from "cookie-es";
import type { MinimumRequestObject } from "~/server/h3";
import createDBSessionHandler from "./db";
import type { DurationLike } from "luxon";
import { DateTime } from "luxon";
import createCacheSessionProvider from "./cache";
/*
This implementation may need work.
@ -26,7 +26,8 @@ export class SessionHandler {
constructor() {
// Create a new provider
this.sessionProvider = createDBSessionHandler();
this.sessionProvider = createCacheSessionProvider();
// this.sessionProvider = createDBSessionHandler();
// this.sessionProvider = createMemorySessionProvider();
}