mirror of
https://github.com/kennethnym/freya
synced 2026-06-20 08:31:17 +01:00
- Add @trpc/server, @hono/trpc-server, zod dependencies - Create tRPC context with BetterAuth session - Create router with publicProcedure and protectedProcedure - Mount tRPC at /trpc/* via Hono adapter Co-authored-by: Ona <no-reply@ona.com>
23 lines
497 B
TypeScript
23 lines
497 B
TypeScript
import { initTRPC, TRPCError } from "@trpc/server"
|
|
|
|
import type { Context } from "./context.ts"
|
|
|
|
const t = initTRPC.context<Context>().create()
|
|
|
|
export const router = t.router
|
|
export const publicProcedure = t.procedure
|
|
|
|
const isAuthed = t.middleware(({ ctx, next }) => {
|
|
if (!ctx.user || !ctx.session) {
|
|
throw new TRPCError({ code: "UNAUTHORIZED" })
|
|
}
|
|
return next({
|
|
ctx: {
|
|
user: ctx.user,
|
|
session: ctx.session,
|
|
},
|
|
})
|
|
})
|
|
|
|
export const protectedProcedure = t.procedure.use(isAuthed)
|