22 lines
587 B
TypeScript
22 lines
587 B
TypeScript
import "server-only";
|
|
|
|
import { headers } from "next/headers";
|
|
import { cache } from "react";
|
|
|
|
import { createCaller } from "~/server/api/root";
|
|
import { createTRPCContext } from "~/server/api/trpc";
|
|
|
|
/**
|
|
* This wraps the `createTRPCContext` helper and provides the required context for the tRPC API when
|
|
* handling a tRPC call from a React Server Component.
|
|
*/
|
|
const createContext = cache(() => {
|
|
const heads = new Headers(headers());
|
|
heads.set("x-trpc-source", "rsc");
|
|
|
|
return createTRPCContext({
|
|
headers: heads,
|
|
});
|
|
});
|
|
|
|
export const api = createCaller(createContext);
|