diff options
Diffstat (limited to 'packages/web/server')
| -rw-r--r-- | packages/web/server/routers/_app.ts | 17 | ||||
| -rw-r--r-- | packages/web/server/trpc.ts | 9 | ||||
| -rw-r--r-- | packages/web/server/utils.ts | 16 |
3 files changed, 42 insertions, 0 deletions
diff --git a/packages/web/server/routers/_app.ts b/packages/web/server/routers/_app.ts new file mode 100644 index 00000000..47c586b7 --- /dev/null +++ b/packages/web/server/routers/_app.ts @@ -0,0 +1,17 @@ +import { z } from "zod"; +import { procedure, router } from "../trpc"; +export const appRouter = router({ + hello: procedure + .input( + z.object({ + text: z.string(), + }), + ) + .query((opts) => { + return { + greeting: `hello ${opts.input.text}`, + }; + }), +}); +// export type definition of API +export type AppRouter = typeof appRouter; diff --git a/packages/web/server/trpc.ts b/packages/web/server/trpc.ts new file mode 100644 index 00000000..b34424ed --- /dev/null +++ b/packages/web/server/trpc.ts @@ -0,0 +1,9 @@ +import { initTRPC } from '@trpc/server'; +// Avoid exporting the entire t-object +// since it's not very descriptive. +// For instance, the use of a t variable +// is common in i18n libraries. +const t = initTRPC.create(); +// Base router and procedure helpers +export const router = t.router; +export const procedure = t.procedure; diff --git a/packages/web/server/utils.ts b/packages/web/server/utils.ts new file mode 100644 index 00000000..70c06585 --- /dev/null +++ b/packages/web/server/utils.ts @@ -0,0 +1,16 @@ +import { httpBatchLink } from "@trpc/client"; +import { createTRPCNext } from "@trpc/next"; +import type { AppRouter } from "../server/routers/_app"; +import serverConfig from "@/lib/config"; + +export const trpc = createTRPCNext<AppRouter>({ + config(_opts) { + return { + links: [ + httpBatchLink({ + url: `${serverConfig.api_url}/api/trpc`, + }), + ], + }; + }, +}); |
