From 4ff57dfb972071f7c23bdad714cf9b611be07ae6 Mon Sep 17 00:00:00 2001 From: Alex Kozack Date: Mon, 12 Dec 2022 15:56:53 +0200 Subject: [PATCH] docs: Infer `Context` type --- docs/content/1.get-started/2.usage.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/content/1.get-started/2.usage.md b/docs/content/1.get-started/2.usage.md index 40f1918..037e32c 100644 --- a/docs/content/1.get-started/2.usage.md +++ b/docs/content/1.get-started/2.usage.md @@ -36,11 +36,12 @@ Initialize your tRPC backend using the `initTRPC` function and create your first ```ts [server/trpc/trpc.ts] import { initTRPC } from '@trpc/server' +import { Context } from '@/server/trpc/context' // Avoid exporting the entire t-object since it's not very // descriptive and can be confusing to newcomers used to t // meaning translation in i18n libraries. -const t = initTRPC.create() +const t = initTRPC.context().create() // Base router and procedure helpers export const router = t.router @@ -72,14 +73,27 @@ export type AppRouter = typeof appRouter ```ts [server/api/trpc/[trpc].ts] import { createNuxtApiHandler } from 'trpc-nuxt' import { appRouter } from '@/server/trpc/routers' +import { createContext } from '@/server/trpc/context' // export API handler export default createNuxtApiHandler({ router: appRouter, - createContext: () => ({}), + createContext, }) ``` +```ts [server/trpc/context.ts] +import { inferAsyncReturnType } from '@trpc/server' + +/** + * Creates context for an incoming request + * @link https://trpc.io/docs/context + */ +export const createContext = () => {} + +export type Context = inferAsyncReturnType; +``` + :: ::alert{type=info}