import { QueryClient } from "@tanstack/react-query"; import { createTRPCClient, httpBatchLink, loggerLink } from "@trpc/client"; import { createTRPCOptionsProxy } from "@trpc/tanstack-react-query"; import superjson from "superjson"; import type { AppRouter } from "@acme/api"; import { authClient } from "./auth"; import { getBaseUrl } from "./base-url"; export const queryClient = new QueryClient({ defaultOptions: { queries: { // ... }, }, }); /** * A set of typesafe hooks for consuming your API. */ export const trpc = createTRPCOptionsProxy({ client: createTRPCClient({ links: [ loggerLink({ enabled: (opts) => process.env.NODE_ENV === "development" || (opts.direction === "down" && opts.result instanceof Error), colorMode: "ansi", }), httpBatchLink({ transformer: superjson, url: `${getBaseUrl()}/api/trpc`, headers() { const headers = new Map(); headers.set("x-trpc-source", "expo-react"); const cookies = authClient.getCookie(); if (cookies) { headers.set("Cookie", cookies); } return headers; }, }), ], }), queryClient, }); export type { RouterInputs, RouterOutputs } from "@acme/api";