import { getSession, getUser } from "@stealth-developers/db"; import Elysia, { t } from "elysia"; export const authPlugin = new Elysia({ name: "auth" }) .guard({ as: "global", cookie: t.Cookie({ session_id: t.Optional(t.String()), }), }) .resolve({ as: "global" }, async ({ cookie: { session_id } }) => { const sessionId = session_id.value as string | undefined; if (!sessionId) return { session: null }; const session = await getSession(sessionId); if (!session || session.expiresAt < new Date()) return { session: null }; const user = await getUser(session.userId); if (!user) return { session: null }; return { session, user }; });