Openstatus
www.openstatus.dev
1import { createTRPCClient, loggerLink } from "@trpc/client";
2import { headers } from "next/headers";
3
4import type { AppRouter } from "@openstatus/api";
5
6import { endingLink } from "./shared";
7
8export const api = createTRPCClient<AppRouter>({
9 links: [
10 loggerLink({
11 enabled: (opts) =>
12 process.env.NODE_ENV === "development" ||
13 (opts.direction === "down" && opts.result instanceof Error),
14 }),
15 endingLink({
16 headers: async () => {
17 const h = new Map(await headers());
18 h.delete("connection");
19 h.delete("transfer-encoding");
20 h.set("x-trpc-source", "server");
21 return Object.fromEntries(h.entries());
22 },
23 }),
24 ],
25});
26
27export { type RouterInputs, type RouterOutputs } from "@openstatus/api";