sendou.ink/old/utils/trpc-server.ts
2021-11-23 18:24:02 +02:00

31 lines
661 B
TypeScript

import * as trpc from "@trpc/server";
import * as trpcExpress from "@trpc/server/adapters/express/dist/trpc-server-adapters-express.cjs";
import superjson from "superjson";
export const createContext = ({
req,
res,
}: trpcExpress.CreateExpressContextOptions) => {
const getUser = () => {
if (!req.user) {
return;
}
return req.user as {
id: number;
discordId: string;
discordAvatar?: string;
};
};
return {
req,
res,
user: getUser(),
};
};
type Context = trpc.inferAsyncReturnType<typeof createContext>;
export function createRouter() {
return trpc.router<Context>().transformer(superjson);
}