import * as trpc from "@trpc/server"; import { inferAsyncReturnType } from "@trpc/server"; import * as trpcExpress from "@trpc/server/adapters/express"; import { z } from "zod"; export const createContext = ({ req, res, }: trpcExpress.CreateExpressContextOptions) => ({}); // no context export type Context = inferAsyncReturnType; export const createTRPCRouter = () => { return trpc.router(); }; export const appRouter = createTRPCRouter() .query("getUser", { // input: z.string(), async resolve(req) { req.input; // string return { id: req.input, name: "Bilbo" }; }, }) .mutation("createUser", { // validate input with Zod input: z.object({ name: z.string().min(5) }), async resolve(req) { return { id: req.input, name: "Bilbo" }; }, }); export type AppRouter = typeof appRouter;