chad/server/trpc/context.ts
Никита Круглицкий bb48e52a99
Some checks failed
Deploy / deploy (push) Failing after 4m2s
update
2025-10-09 22:29:42 +06:00

24 lines
711 B
TypeScript

import type { CreateExpressContextOptions } from '@trpc/server/adapters/express'
import { auth } from '../auth/lucia'
export async function createContext({ res, req }: CreateExpressContextOptions) {
const sessionId = auth.readSessionCookie(req.headers.cookie ?? '')
if (!sessionId)
return { res, req }
const { session, user } = await auth.validateSession(sessionId)
if (session && session.fresh) {
res.appendHeader('Set-Cookie', auth.createSessionCookie(session.id).serialize())
}
if (!session) {
res.appendHeader('Set-Cookie', auth.createBlankSessionCookie().serialize())
}
return { res, req, session, user }
}
export type Context = Awaited<ReturnType<typeof createContext>>