import { TRPCError, initTRPC } from "@trpc/server"
import { FetchCreateContextFnOptions } from "@trpc/server/adapters/fetch"
import { supabase } from "~/lib/supabase";
export async function createContext({ req }: FetchCreateContextFnOptions) {
const {
data: { user },
} = await supabase.auth.getUser();
return {
user
}
}
const t = initTRPC.context<typeof createContext>().create({
errorFormatter({ shape }) {
return shape
},
})
export const createTRPCRouter = t.router
export const publicProcedure = t.procedure
const enforceUserIsAuthed = t.middleware( async ({ ctx, next }) => {
if (!ctx.user) {
throw new TRPCError({ code: "UNAUTHORIZED" });
}
return next({
ctx: {
...ctx,
user: ctx.user
},
});
});
export const protectedProcedure = t.procedure.use(enforceUserIsAuthed);
import { TRPCError, initTRPC } from "@trpc/server"
import { FetchCreateContextFnOptions } from "@trpc/server/adapters/fetch"
import { supabase } from "~/lib/supabase";
export async function createContext({ req }: FetchCreateContextFnOptions) {
const {
data: { user },
} = await supabase.auth.getUser();
return {
user
}
}
const t = initTRPC.context<typeof createContext>().create({
errorFormatter({ shape }) {
return shape
},
})
export const createTRPCRouter = t.router
export const publicProcedure = t.procedure
const enforceUserIsAuthed = t.middleware( async ({ ctx, next }) => {
if (!ctx.user) {
throw new TRPCError({ code: "UNAUTHORIZED" });
}
return next({
ctx: {
...ctx,
user: ctx.user
},
});
});
export const protectedProcedure = t.procedure.use(enforceUserIsAuthed);