cpns / apps /web /src /utils /trpc.ts
pramudya-yb
Rename project from Labas to Pram
2b62b0c
Raw
History Blame Contribute Delete
1.2 kB
import type { AppRouter } from "@pram/api/routers/index";
import { env } from "@pram/env/web";
import { QueryCache, QueryClient } from "@tanstack/react-query";
import { createTRPCClient, httpBatchLink, TRPCClientError } from "@trpc/client";
import { createTRPCOptionsProxy } from "@trpc/tanstack-react-query";
import { toast } from "sonner";
export const queryClient = new QueryClient({
queryCache: new QueryCache({
onError: (error, query) => {
if (
error instanceof TRPCClientError &&
(error.data?.code === "UNAUTHORIZED" ||
error.message.toLowerCase().includes("authentication required"))
) {
return;
}
toast.error(error.message, {
action: {
label: "retry",
onClick: query.invalidate,
},
});
},
}),
});
export const trpcClient = createTRPCClient<AppRouter>({
links: [
httpBatchLink({
url: `${env.VITE_SERVER_URL}/trpc`,
fetch(url, options) {
return fetch(url, {
...options,
credentials: "include",
});
},
}),
],
});
export const trpc = createTRPCOptionsProxy<AppRouter>({
client: trpcClient,
queryClient,
});