reactlith
Version:
Create a full-stack, typesafe, rock-solid React monorepo
27 lines (21 loc) • 881 B
text/typescript
import type { inferRouterInputs, inferRouterOutputs } from '@trpc/server';
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
import { createContext } from '#context.ts';
import { createCallerFactory, publicProcedure, router } from '#init.ts';
import { configRouter } from '#routers/config.ts';
const appRouter = router({
health: publicProcedure.query(() => 'tRPC healthy!'),
config: configRouter,
});
export function trpcHandler({ request }: { request: Request }) {
return fetchRequestHandler({
req: request,
router: appRouter,
endpoint: '/trpc',
createContext: (opts) => createContext({ request: opts.req }),
});
}
export const createTrpcCaller = createCallerFactory(appRouter);
export type TRPCRouter = typeof appRouter;
export type TRPCInput = inferRouterInputs<TRPCRouter>;
export type TRPCOutput = inferRouterOutputs<TRPCRouter>;