app.use('/trpc', tRPCConfig);
const client = createTRPCProxyClient<AppRouter>({ links: [ httpBatchLink({ url: '/trpc', }), ],});
https://localhost.sparkcognition.com:3000/
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';import { AppRouter } from '../../server/tRPC';const url = 'https://localhost.sparkcognition.com:3000';const client = createTRPCProxyClient<AppRouter>({ links: [ httpBatchLink({ url, }), ],});export { client };
import { client } from '../../tRPC';const test = client.alerts.featureHealthAlerts.query({ serviceAlias: 'kong' });test.then(data => { console.log('data => ', data);});
src/server/tRPC/index.ts
import { inferAsyncReturnType, initTRPC } from '@trpc/server';import * as trpcExpress from '@trpc/server/adapters/express';import config from 'config';import { z } from 'zod';const createContext = ({ req, res,}: trpcExpress.CreateExpressContextOptions) => { return { req, res, };};type Context = inferAsyncReturnType<typeof createContext>;const t = initTRPC.context<Context>().create();const { router } = t;const publicProcedure = t.procedure;const alertsRouter = router({ featureHealthAlerts: publicProcedure .input( z.object({ serviceAlias: z.string().nullish(), }), ) .query(async ({ input }) => { try { const serviceAlias = input.serviceAlias ?? 'kong'; const baseURL: unknown = config.get( `coreUI.service.serviceProxies.${serviceAlias}.baseURL`, ); const response: any = await fetch(`${baseURL}`); return response; } catch (error: any) { throw new Error(error?.message); } }),});const appRouter = router({ alerts: alertsRouter,});export type AppRouter = typeof appRouter;const tRPCConfig = trpcExpress.createExpressMiddleware({ router: appRouter, createContext, onError({ error }) { console.error('Something went wrong', error); }, batching: { enabled: true, },});export { tRPCConfig };
src/client/tRPC/index.ts
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';import { AppRouter } from '../../server/tRPC';const url = `/`;const client = createTRPCProxyClient<AppRouter>({ links: [ httpBatchLink({ url, }), ],});export { client };