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