import { createORPCClient } from '@orpc/client' import { RPCLink } from '@orpc/client/fetch' import { createRouterClient } from '@orpc/server' import { createIsomorphicFn } from '@tanstack/react-start' import { getRequestHeaders } from '@tanstack/react-start/server' import { router } from '@/api/routers' import type { RouterClient } from '@/api/types' const getORPCClient = createIsomorphicFn() .server(() => createRouterClient(router, { context: () => ({ headers: getRequestHeaders(), }), }), ) .client(() => { const link = new RPCLink({ url: `${window.location.origin}/api/rpc`, }) return createORPCClient(link) }) export const client: RouterClient = getORPCClient()