[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-trpc-adapter-express":3,"mdc-1xbh81-key":40,"related-org-trpc-adapter-express":2996,"related-repo-trpc-adapter-express":3152},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":35,"sourceUrl":38,"mdContent":39},"adapter-express","mount tRPC as Express middleware","Mount tRPC as Express middleware with createExpressMiddleware() from @trpc\u002Fserver\u002Fadapters\u002Fexpress. Access Express req\u002Fres in createContext via CreateExpressContextOptions. Mount at a path prefix like app.use('\u002Ftrpc', ...). Avoid global express.json() conflicting with tRPC body parsing for FormData.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"trpc","tRPC","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftrpc.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Backend","backend","tag",{"name":17,"slug":18,"type":15},"Express","express",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"API Development","api-development",40424,"https:\u002F\u002Fgithub.com\u002Ftrpc\u002Ftrpc","2026-07-18T05:46:53.274248",null,1636,[29,30,31,32,33,34],"api","next","nextjs","prisma","react","typescript",{"repoUrl":24,"stars":23,"forks":27,"topics":36,"description":37},[29,30,31,32,33,34],"🧙‍♀️  Move Fast and Break Nothing. End-to-end typesafe APIs made easy. ","https:\u002F\u002Fgithub.com\u002Ftrpc\u002Ftrpc\u002Ftree\u002FHEAD\u002Fpackages\u002Fserver\u002Fskills\u002Fadapter-express","---\nname: adapter-express\ndescription: >\n  Mount tRPC as Express middleware with createExpressMiddleware() from\n  @trpc\u002Fserver\u002Fadapters\u002Fexpress. Access Express req\u002Fres in createContext via\n  CreateExpressContextOptions. Mount at a path prefix like app.use('\u002Ftrpc', ...).\n  Avoid global express.json() conflicting with tRPC body parsing for FormData.\ntype: core\nlibrary: trpc\nlibrary_version: '11.16.0'\nrequires:\n  - server-setup\nsources:\n  - www\u002Fdocs\u002Fserver\u002Fadapters\u002Fexpress.md\n  - examples\u002Fexpress-server\u002Fsrc\u002Fserver.ts\n---\n\n# tRPC — Adapter: Express\n\n## Setup\n\n```ts\n\u002F\u002F server.ts\nimport { initTRPC } from '@trpc\u002Fserver';\nimport * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\nimport express from 'express';\nimport { z } from 'zod';\n\nconst createContext = ({\n  req,\n  res,\n}: trpcExpress.CreateExpressContextOptions) => {\n  return { req, res };\n};\ntype Context = Awaited\u003CReturnType\u003Ctypeof createContext>>;\n\nconst t = initTRPC.context\u003CContext>().create();\n\nconst appRouter = t.router({\n  greet: t.procedure\n    .input(z.object({ name: z.string() }))\n    .query(({ input }) => ({ greeting: `Hello, ${input.name}!` })),\n});\n\nexport type AppRouter = typeof appRouter;\n\nconst app = express();\n\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n\napp.listen(4000, () => {\n  console.log('Listening on http:\u002F\u002Flocalhost:4000');\n});\n```\n\n## Core Patterns\n\n### Accessing Express req\u002Fres in context\n\n```ts\nimport * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\n\nconst createContext = ({\n  req,\n  res,\n}: trpcExpress.CreateExpressContextOptions) => {\n  const token = req.headers.authorization?.split(' ')[1];\n  return { token, res };\n};\n\ntype Context = Awaited\u003CReturnType\u003Ctypeof createContext>>;\n```\n\n`CreateExpressContextOptions` provides typed access to the Express `req` (IncomingMessage) and `res` (ServerResponse).\n\n### Adding tRPC alongside existing Express routes\n\n```ts\nimport * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\nimport cors from 'cors';\nimport express from 'express';\nimport { createContext } from '.\u002Fcontext';\nimport { appRouter } from '.\u002Frouter';\n\nconst app = express();\n\napp.use(cors());\n\napp.get('\u002Fhealth', (_req, res) => {\n  res.json({ status: 'ok' });\n});\n\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n\napp.listen(4000);\n```\n\n### Limiting batch size with maxBatchSize\n\n```ts\nimport * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\nimport express from 'express';\nimport { createContext } from '.\u002Fcontext';\nimport { appRouter } from '.\u002Frouter';\n\nconst app = express();\n\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n    maxBatchSize: 10,\n  }),\n);\n\napp.listen(4000);\n```\n\nRequests batching more than `maxBatchSize` operations are rejected with a `400 Bad Request` error. Set `maxItems` on your client's `httpBatchLink` to the same value to avoid exceeding the limit.\n\n## Common Mistakes\n\n### HIGH Global express.json() consuming tRPC request body\n\nWrong:\n\n```ts\nconst app = express();\napp.use(express.json()); \u002F\u002F global body parser\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n```\n\nCorrect:\n\n```ts\nconst app = express();\n\u002F\u002F Only apply body parser to non-tRPC routes\napp.use('\u002Fapi', express.json());\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n```\n\nIf `express.json()` is applied globally before the tRPC middleware, it consumes and parses the request body. tRPC then receives an already-parsed body, which breaks FormData and binary content type handling.\n\nSource: www\u002Fdocs\u002Fserver\u002Fnon-json-content-types.md\n\n## See Also\n\n- **server-setup** -- `initTRPC.create()`, router\u002Fprocedure definition, context\n- **adapter-standalone** -- simpler adapter when Express middleware ecosystem is not needed\n- **auth** -- extracting JWT from `req.headers.authorization` in context\n- Express docs: https:\u002F\u002Fexpressjs.com\u002Fen\u002Fguide\u002Fusing-middleware.html\n",{"data":41,"body":49},{"name":4,"description":6,"type":42,"library":8,"library_version":43,"requires":44,"sources":46},"core","11.16.0",[45],"server-setup",[47,48],"www\u002Fdocs\u002Fserver\u002Fadapters\u002Fexpress.md","examples\u002Fexpress-server\u002Fsrc\u002Fserver.ts",{"type":50,"children":51},"root",[52,61,68,1151,1157,1164,1453,1480,1486,2057,2063,2435,2472,2478,2484,2489,2682,2687,2902,2915,2920,2926,2990],{"type":53,"tag":54,"props":55,"children":57},"element","h1",{"id":56},"trpc-adapter-express",[58],{"type":59,"value":60},"text","tRPC — Adapter: Express",{"type":53,"tag":62,"props":63,"children":65},"h2",{"id":64},"setup",[66],{"type":59,"value":67},"Setup",{"type":53,"tag":69,"props":70,"children":75},"pre",{"className":71,"code":72,"language":73,"meta":74,"style":74},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F server.ts\nimport { initTRPC } from '@trpc\u002Fserver';\nimport * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\nimport express from 'express';\nimport { z } from 'zod';\n\nconst createContext = ({\n  req,\n  res,\n}: trpcExpress.CreateExpressContextOptions) => {\n  return { req, res };\n};\ntype Context = Awaited\u003CReturnType\u003Ctypeof createContext>>;\n\nconst t = initTRPC.context\u003CContext>().create();\n\nconst appRouter = t.router({\n  greet: t.procedure\n    .input(z.object({ name: z.string() }))\n    .query(({ input }) => ({ greeting: `Hello, ${input.name}!` })),\n});\n\nexport type AppRouter = typeof appRouter;\n\nconst app = express();\n\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n\napp.listen(4000, () => {\n  console.log('Listening on http:\u002F\u002Flocalhost:4000');\n});\n","ts","",[76],{"type":53,"tag":77,"props":78,"children":79},"code",{"__ignoreMap":74},[80,92,145,190,223,265,275,305,319,332,372,405,414,463,471,538,546,586,614,688,798,815,823,860,868,898,906,929,951,977,998,1011,1028,1040,1048,1092,1135],{"type":53,"tag":81,"props":82,"children":85},"span",{"class":83,"line":84},"line",1,[86],{"type":53,"tag":81,"props":87,"children":89},{"style":88},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[90],{"type":59,"value":91},"\u002F\u002F server.ts\n",{"type":53,"tag":81,"props":93,"children":95},{"class":83,"line":94},2,[96,102,108,114,119,124,129,135,140],{"type":53,"tag":81,"props":97,"children":99},{"style":98},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[100],{"type":59,"value":101},"import",{"type":53,"tag":81,"props":103,"children":105},{"style":104},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[106],{"type":59,"value":107}," {",{"type":53,"tag":81,"props":109,"children":111},{"style":110},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[112],{"type":59,"value":113}," initTRPC",{"type":53,"tag":81,"props":115,"children":116},{"style":104},[117],{"type":59,"value":118}," }",{"type":53,"tag":81,"props":120,"children":121},{"style":98},[122],{"type":59,"value":123}," from",{"type":53,"tag":81,"props":125,"children":126},{"style":104},[127],{"type":59,"value":128}," '",{"type":53,"tag":81,"props":130,"children":132},{"style":131},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[133],{"type":59,"value":134},"@trpc\u002Fserver",{"type":53,"tag":81,"props":136,"children":137},{"style":104},[138],{"type":59,"value":139},"'",{"type":53,"tag":81,"props":141,"children":142},{"style":104},[143],{"type":59,"value":144},";\n",{"type":53,"tag":81,"props":146,"children":148},{"class":83,"line":147},3,[149,153,158,163,168,173,177,182,186],{"type":53,"tag":81,"props":150,"children":151},{"style":98},[152],{"type":59,"value":101},{"type":53,"tag":81,"props":154,"children":155},{"style":104},[156],{"type":59,"value":157}," *",{"type":53,"tag":81,"props":159,"children":160},{"style":98},[161],{"type":59,"value":162}," as",{"type":53,"tag":81,"props":164,"children":165},{"style":110},[166],{"type":59,"value":167}," trpcExpress ",{"type":53,"tag":81,"props":169,"children":170},{"style":98},[171],{"type":59,"value":172},"from",{"type":53,"tag":81,"props":174,"children":175},{"style":104},[176],{"type":59,"value":128},{"type":53,"tag":81,"props":178,"children":179},{"style":131},[180],{"type":59,"value":181},"@trpc\u002Fserver\u002Fadapters\u002Fexpress",{"type":53,"tag":81,"props":183,"children":184},{"style":104},[185],{"type":59,"value":139},{"type":53,"tag":81,"props":187,"children":188},{"style":104},[189],{"type":59,"value":144},{"type":53,"tag":81,"props":191,"children":193},{"class":83,"line":192},4,[194,198,203,207,211,215,219],{"type":53,"tag":81,"props":195,"children":196},{"style":98},[197],{"type":59,"value":101},{"type":53,"tag":81,"props":199,"children":200},{"style":110},[201],{"type":59,"value":202}," express ",{"type":53,"tag":81,"props":204,"children":205},{"style":98},[206],{"type":59,"value":172},{"type":53,"tag":81,"props":208,"children":209},{"style":104},[210],{"type":59,"value":128},{"type":53,"tag":81,"props":212,"children":213},{"style":131},[214],{"type":59,"value":18},{"type":53,"tag":81,"props":216,"children":217},{"style":104},[218],{"type":59,"value":139},{"type":53,"tag":81,"props":220,"children":221},{"style":104},[222],{"type":59,"value":144},{"type":53,"tag":81,"props":224,"children":226},{"class":83,"line":225},5,[227,231,235,240,244,248,252,257,261],{"type":53,"tag":81,"props":228,"children":229},{"style":98},[230],{"type":59,"value":101},{"type":53,"tag":81,"props":232,"children":233},{"style":104},[234],{"type":59,"value":107},{"type":53,"tag":81,"props":236,"children":237},{"style":110},[238],{"type":59,"value":239}," z",{"type":53,"tag":81,"props":241,"children":242},{"style":104},[243],{"type":59,"value":118},{"type":53,"tag":81,"props":245,"children":246},{"style":98},[247],{"type":59,"value":123},{"type":53,"tag":81,"props":249,"children":250},{"style":104},[251],{"type":59,"value":128},{"type":53,"tag":81,"props":253,"children":254},{"style":131},[255],{"type":59,"value":256},"zod",{"type":53,"tag":81,"props":258,"children":259},{"style":104},[260],{"type":59,"value":139},{"type":53,"tag":81,"props":262,"children":263},{"style":104},[264],{"type":59,"value":144},{"type":53,"tag":81,"props":266,"children":268},{"class":83,"line":267},6,[269],{"type":53,"tag":81,"props":270,"children":272},{"emptyLinePlaceholder":271},true,[273],{"type":59,"value":274},"\n",{"type":53,"tag":81,"props":276,"children":278},{"class":83,"line":277},7,[279,285,290,295,300],{"type":53,"tag":81,"props":280,"children":282},{"style":281},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[283],{"type":59,"value":284},"const",{"type":53,"tag":81,"props":286,"children":287},{"style":110},[288],{"type":59,"value":289}," createContext ",{"type":53,"tag":81,"props":291,"children":292},{"style":104},[293],{"type":59,"value":294},"=",{"type":53,"tag":81,"props":296,"children":297},{"style":110},[298],{"type":59,"value":299}," (",{"type":53,"tag":81,"props":301,"children":302},{"style":104},[303],{"type":59,"value":304},"{\n",{"type":53,"tag":81,"props":306,"children":308},{"class":83,"line":307},8,[309,314],{"type":53,"tag":81,"props":310,"children":311},{"style":110},[312],{"type":59,"value":313},"  req",{"type":53,"tag":81,"props":315,"children":316},{"style":104},[317],{"type":59,"value":318},",\n",{"type":53,"tag":81,"props":320,"children":322},{"class":83,"line":321},9,[323,328],{"type":53,"tag":81,"props":324,"children":325},{"style":110},[326],{"type":59,"value":327},"  res",{"type":53,"tag":81,"props":329,"children":330},{"style":104},[331],{"type":59,"value":318},{"type":53,"tag":81,"props":333,"children":335},{"class":83,"line":334},10,[336,341,347,352,357,362,367],{"type":53,"tag":81,"props":337,"children":338},{"style":104},[339],{"type":59,"value":340},"}:",{"type":53,"tag":81,"props":342,"children":344},{"style":343},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[345],{"type":59,"value":346}," trpcExpress",{"type":53,"tag":81,"props":348,"children":349},{"style":104},[350],{"type":59,"value":351},".",{"type":53,"tag":81,"props":353,"children":354},{"style":343},[355],{"type":59,"value":356},"CreateExpressContextOptions",{"type":53,"tag":81,"props":358,"children":359},{"style":110},[360],{"type":59,"value":361},") ",{"type":53,"tag":81,"props":363,"children":364},{"style":281},[365],{"type":59,"value":366},"=>",{"type":53,"tag":81,"props":368,"children":369},{"style":104},[370],{"type":59,"value":371}," {\n",{"type":53,"tag":81,"props":373,"children":375},{"class":83,"line":374},11,[376,381,385,390,395,400],{"type":53,"tag":81,"props":377,"children":378},{"style":98},[379],{"type":59,"value":380},"  return",{"type":53,"tag":81,"props":382,"children":383},{"style":104},[384],{"type":59,"value":107},{"type":53,"tag":81,"props":386,"children":387},{"style":110},[388],{"type":59,"value":389}," req",{"type":53,"tag":81,"props":391,"children":392},{"style":104},[393],{"type":59,"value":394},",",{"type":53,"tag":81,"props":396,"children":397},{"style":110},[398],{"type":59,"value":399}," res",{"type":53,"tag":81,"props":401,"children":402},{"style":104},[403],{"type":59,"value":404}," };\n",{"type":53,"tag":81,"props":406,"children":408},{"class":83,"line":407},12,[409],{"type":53,"tag":81,"props":410,"children":411},{"style":104},[412],{"type":59,"value":413},"};\n",{"type":53,"tag":81,"props":415,"children":417},{"class":83,"line":416},13,[418,423,428,433,438,443,448,453,458],{"type":53,"tag":81,"props":419,"children":420},{"style":281},[421],{"type":59,"value":422},"type",{"type":53,"tag":81,"props":424,"children":425},{"style":343},[426],{"type":59,"value":427}," Context",{"type":53,"tag":81,"props":429,"children":430},{"style":104},[431],{"type":59,"value":432}," =",{"type":53,"tag":81,"props":434,"children":435},{"style":343},[436],{"type":59,"value":437}," Awaited",{"type":53,"tag":81,"props":439,"children":440},{"style":104},[441],{"type":59,"value":442},"\u003C",{"type":53,"tag":81,"props":444,"children":445},{"style":343},[446],{"type":59,"value":447},"ReturnType",{"type":53,"tag":81,"props":449,"children":450},{"style":104},[451],{"type":59,"value":452},"\u003Ctypeof",{"type":53,"tag":81,"props":454,"children":455},{"style":110},[456],{"type":59,"value":457}," createContext",{"type":53,"tag":81,"props":459,"children":460},{"style":104},[461],{"type":59,"value":462},">>;\n",{"type":53,"tag":81,"props":464,"children":466},{"class":83,"line":465},14,[467],{"type":53,"tag":81,"props":468,"children":469},{"emptyLinePlaceholder":271},[470],{"type":59,"value":274},{"type":53,"tag":81,"props":472,"children":474},{"class":83,"line":473},15,[475,479,484,488,492,496,502,506,511,516,521,525,530,534],{"type":53,"tag":81,"props":476,"children":477},{"style":281},[478],{"type":59,"value":284},{"type":53,"tag":81,"props":480,"children":481},{"style":110},[482],{"type":59,"value":483}," t ",{"type":53,"tag":81,"props":485,"children":486},{"style":104},[487],{"type":59,"value":294},{"type":53,"tag":81,"props":489,"children":490},{"style":110},[491],{"type":59,"value":113},{"type":53,"tag":81,"props":493,"children":494},{"style":104},[495],{"type":59,"value":351},{"type":53,"tag":81,"props":497,"children":499},{"style":498},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[500],{"type":59,"value":501},"context",{"type":53,"tag":81,"props":503,"children":504},{"style":104},[505],{"type":59,"value":442},{"type":53,"tag":81,"props":507,"children":508},{"style":343},[509],{"type":59,"value":510},"Context",{"type":53,"tag":81,"props":512,"children":513},{"style":104},[514],{"type":59,"value":515},">",{"type":53,"tag":81,"props":517,"children":518},{"style":110},[519],{"type":59,"value":520},"()",{"type":53,"tag":81,"props":522,"children":523},{"style":104},[524],{"type":59,"value":351},{"type":53,"tag":81,"props":526,"children":527},{"style":498},[528],{"type":59,"value":529},"create",{"type":53,"tag":81,"props":531,"children":532},{"style":110},[533],{"type":59,"value":520},{"type":53,"tag":81,"props":535,"children":536},{"style":104},[537],{"type":59,"value":144},{"type":53,"tag":81,"props":539,"children":541},{"class":83,"line":540},16,[542],{"type":53,"tag":81,"props":543,"children":544},{"emptyLinePlaceholder":271},[545],{"type":59,"value":274},{"type":53,"tag":81,"props":547,"children":549},{"class":83,"line":548},17,[550,554,559,563,568,572,577,582],{"type":53,"tag":81,"props":551,"children":552},{"style":281},[553],{"type":59,"value":284},{"type":53,"tag":81,"props":555,"children":556},{"style":110},[557],{"type":59,"value":558}," appRouter ",{"type":53,"tag":81,"props":560,"children":561},{"style":104},[562],{"type":59,"value":294},{"type":53,"tag":81,"props":564,"children":565},{"style":110},[566],{"type":59,"value":567}," t",{"type":53,"tag":81,"props":569,"children":570},{"style":104},[571],{"type":59,"value":351},{"type":53,"tag":81,"props":573,"children":574},{"style":498},[575],{"type":59,"value":576},"router",{"type":53,"tag":81,"props":578,"children":579},{"style":110},[580],{"type":59,"value":581},"(",{"type":53,"tag":81,"props":583,"children":584},{"style":104},[585],{"type":59,"value":304},{"type":53,"tag":81,"props":587,"children":589},{"class":83,"line":588},18,[590,596,601,605,609],{"type":53,"tag":81,"props":591,"children":593},{"style":592},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[594],{"type":59,"value":595},"  greet",{"type":53,"tag":81,"props":597,"children":598},{"style":104},[599],{"type":59,"value":600},":",{"type":53,"tag":81,"props":602,"children":603},{"style":110},[604],{"type":59,"value":567},{"type":53,"tag":81,"props":606,"children":607},{"style":104},[608],{"type":59,"value":351},{"type":53,"tag":81,"props":610,"children":611},{"style":110},[612],{"type":59,"value":613},"procedure\n",{"type":53,"tag":81,"props":615,"children":617},{"class":83,"line":616},19,[618,623,628,633,637,642,646,651,656,660,664,668,673,678,683],{"type":53,"tag":81,"props":619,"children":620},{"style":104},[621],{"type":59,"value":622},"    .",{"type":53,"tag":81,"props":624,"children":625},{"style":498},[626],{"type":59,"value":627},"input",{"type":53,"tag":81,"props":629,"children":630},{"style":110},[631],{"type":59,"value":632},"(z",{"type":53,"tag":81,"props":634,"children":635},{"style":104},[636],{"type":59,"value":351},{"type":53,"tag":81,"props":638,"children":639},{"style":498},[640],{"type":59,"value":641},"object",{"type":53,"tag":81,"props":643,"children":644},{"style":110},[645],{"type":59,"value":581},{"type":53,"tag":81,"props":647,"children":648},{"style":104},[649],{"type":59,"value":650},"{",{"type":53,"tag":81,"props":652,"children":653},{"style":592},[654],{"type":59,"value":655}," name",{"type":53,"tag":81,"props":657,"children":658},{"style":104},[659],{"type":59,"value":600},{"type":53,"tag":81,"props":661,"children":662},{"style":110},[663],{"type":59,"value":239},{"type":53,"tag":81,"props":665,"children":666},{"style":104},[667],{"type":59,"value":351},{"type":53,"tag":81,"props":669,"children":670},{"style":498},[671],{"type":59,"value":672},"string",{"type":53,"tag":81,"props":674,"children":675},{"style":110},[676],{"type":59,"value":677},"() ",{"type":53,"tag":81,"props":679,"children":680},{"style":104},[681],{"type":59,"value":682},"}",{"type":53,"tag":81,"props":684,"children":685},{"style":110},[686],{"type":59,"value":687},"))\n",{"type":53,"tag":81,"props":689,"children":691},{"class":83,"line":690},20,[692,696,701,705,710,716,721,726,730,734,739,743,748,753,758,762,766,771,775,780,785,789,794],{"type":53,"tag":81,"props":693,"children":694},{"style":104},[695],{"type":59,"value":622},{"type":53,"tag":81,"props":697,"children":698},{"style":498},[699],{"type":59,"value":700},"query",{"type":53,"tag":81,"props":702,"children":703},{"style":110},[704],{"type":59,"value":581},{"type":53,"tag":81,"props":706,"children":707},{"style":104},[708],{"type":59,"value":709},"({",{"type":53,"tag":81,"props":711,"children":713},{"style":712},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[714],{"type":59,"value":715}," input",{"type":53,"tag":81,"props":717,"children":718},{"style":104},[719],{"type":59,"value":720}," })",{"type":53,"tag":81,"props":722,"children":723},{"style":281},[724],{"type":59,"value":725}," =>",{"type":53,"tag":81,"props":727,"children":728},{"style":110},[729],{"type":59,"value":299},{"type":53,"tag":81,"props":731,"children":732},{"style":104},[733],{"type":59,"value":650},{"type":53,"tag":81,"props":735,"children":736},{"style":592},[737],{"type":59,"value":738}," greeting",{"type":53,"tag":81,"props":740,"children":741},{"style":104},[742],{"type":59,"value":600},{"type":53,"tag":81,"props":744,"children":745},{"style":104},[746],{"type":59,"value":747}," `",{"type":53,"tag":81,"props":749,"children":750},{"style":131},[751],{"type":59,"value":752},"Hello, ",{"type":53,"tag":81,"props":754,"children":755},{"style":104},[756],{"type":59,"value":757},"${",{"type":53,"tag":81,"props":759,"children":760},{"style":110},[761],{"type":59,"value":627},{"type":53,"tag":81,"props":763,"children":764},{"style":104},[765],{"type":59,"value":351},{"type":53,"tag":81,"props":767,"children":768},{"style":110},[769],{"type":59,"value":770},"name",{"type":53,"tag":81,"props":772,"children":773},{"style":104},[774],{"type":59,"value":682},{"type":53,"tag":81,"props":776,"children":777},{"style":131},[778],{"type":59,"value":779},"!",{"type":53,"tag":81,"props":781,"children":782},{"style":104},[783],{"type":59,"value":784},"`",{"type":53,"tag":81,"props":786,"children":787},{"style":104},[788],{"type":59,"value":118},{"type":53,"tag":81,"props":790,"children":791},{"style":110},[792],{"type":59,"value":793},"))",{"type":53,"tag":81,"props":795,"children":796},{"style":104},[797],{"type":59,"value":318},{"type":53,"tag":81,"props":799,"children":801},{"class":83,"line":800},21,[802,806,811],{"type":53,"tag":81,"props":803,"children":804},{"style":104},[805],{"type":59,"value":682},{"type":53,"tag":81,"props":807,"children":808},{"style":110},[809],{"type":59,"value":810},")",{"type":53,"tag":81,"props":812,"children":813},{"style":104},[814],{"type":59,"value":144},{"type":53,"tag":81,"props":816,"children":818},{"class":83,"line":817},22,[819],{"type":53,"tag":81,"props":820,"children":821},{"emptyLinePlaceholder":271},[822],{"type":59,"value":274},{"type":53,"tag":81,"props":824,"children":826},{"class":83,"line":825},23,[827,832,837,842,846,851,856],{"type":53,"tag":81,"props":828,"children":829},{"style":98},[830],{"type":59,"value":831},"export",{"type":53,"tag":81,"props":833,"children":834},{"style":281},[835],{"type":59,"value":836}," type",{"type":53,"tag":81,"props":838,"children":839},{"style":343},[840],{"type":59,"value":841}," AppRouter",{"type":53,"tag":81,"props":843,"children":844},{"style":104},[845],{"type":59,"value":432},{"type":53,"tag":81,"props":847,"children":848},{"style":104},[849],{"type":59,"value":850}," typeof",{"type":53,"tag":81,"props":852,"children":853},{"style":110},[854],{"type":59,"value":855}," appRouter",{"type":53,"tag":81,"props":857,"children":858},{"style":104},[859],{"type":59,"value":144},{"type":53,"tag":81,"props":861,"children":863},{"class":83,"line":862},24,[864],{"type":53,"tag":81,"props":865,"children":866},{"emptyLinePlaceholder":271},[867],{"type":59,"value":274},{"type":53,"tag":81,"props":869,"children":871},{"class":83,"line":870},25,[872,876,881,885,890,894],{"type":53,"tag":81,"props":873,"children":874},{"style":281},[875],{"type":59,"value":284},{"type":53,"tag":81,"props":877,"children":878},{"style":110},[879],{"type":59,"value":880}," app ",{"type":53,"tag":81,"props":882,"children":883},{"style":104},[884],{"type":59,"value":294},{"type":53,"tag":81,"props":886,"children":887},{"style":498},[888],{"type":59,"value":889}," express",{"type":53,"tag":81,"props":891,"children":892},{"style":110},[893],{"type":59,"value":520},{"type":53,"tag":81,"props":895,"children":896},{"style":104},[897],{"type":59,"value":144},{"type":53,"tag":81,"props":899,"children":901},{"class":83,"line":900},26,[902],{"type":53,"tag":81,"props":903,"children":904},{"emptyLinePlaceholder":271},[905],{"type":59,"value":274},{"type":53,"tag":81,"props":907,"children":909},{"class":83,"line":908},27,[910,915,919,924],{"type":53,"tag":81,"props":911,"children":912},{"style":110},[913],{"type":59,"value":914},"app",{"type":53,"tag":81,"props":916,"children":917},{"style":104},[918],{"type":59,"value":351},{"type":53,"tag":81,"props":920,"children":921},{"style":498},[922],{"type":59,"value":923},"use",{"type":53,"tag":81,"props":925,"children":926},{"style":110},[927],{"type":59,"value":928},"(\n",{"type":53,"tag":81,"props":930,"children":932},{"class":83,"line":931},28,[933,938,943,947],{"type":53,"tag":81,"props":934,"children":935},{"style":104},[936],{"type":59,"value":937},"  '",{"type":53,"tag":81,"props":939,"children":940},{"style":131},[941],{"type":59,"value":942},"\u002Ftrpc",{"type":53,"tag":81,"props":944,"children":945},{"style":104},[946],{"type":59,"value":139},{"type":53,"tag":81,"props":948,"children":949},{"style":104},[950],{"type":59,"value":318},{"type":53,"tag":81,"props":952,"children":954},{"class":83,"line":953},29,[955,960,964,969,973],{"type":53,"tag":81,"props":956,"children":957},{"style":110},[958],{"type":59,"value":959},"  trpcExpress",{"type":53,"tag":81,"props":961,"children":962},{"style":104},[963],{"type":59,"value":351},{"type":53,"tag":81,"props":965,"children":966},{"style":498},[967],{"type":59,"value":968},"createExpressMiddleware",{"type":53,"tag":81,"props":970,"children":971},{"style":110},[972],{"type":59,"value":581},{"type":53,"tag":81,"props":974,"children":975},{"style":104},[976],{"type":59,"value":304},{"type":53,"tag":81,"props":978,"children":980},{"class":83,"line":979},30,[981,986,990,994],{"type":53,"tag":81,"props":982,"children":983},{"style":592},[984],{"type":59,"value":985},"    router",{"type":53,"tag":81,"props":987,"children":988},{"style":104},[989],{"type":59,"value":600},{"type":53,"tag":81,"props":991,"children":992},{"style":110},[993],{"type":59,"value":855},{"type":53,"tag":81,"props":995,"children":996},{"style":104},[997],{"type":59,"value":318},{"type":53,"tag":81,"props":999,"children":1001},{"class":83,"line":1000},31,[1002,1007],{"type":53,"tag":81,"props":1003,"children":1004},{"style":110},[1005],{"type":59,"value":1006},"    createContext",{"type":53,"tag":81,"props":1008,"children":1009},{"style":104},[1010],{"type":59,"value":318},{"type":53,"tag":81,"props":1012,"children":1014},{"class":83,"line":1013},32,[1015,1020,1024],{"type":53,"tag":81,"props":1016,"children":1017},{"style":104},[1018],{"type":59,"value":1019},"  }",{"type":53,"tag":81,"props":1021,"children":1022},{"style":110},[1023],{"type":59,"value":810},{"type":53,"tag":81,"props":1025,"children":1026},{"style":104},[1027],{"type":59,"value":318},{"type":53,"tag":81,"props":1029,"children":1031},{"class":83,"line":1030},33,[1032,1036],{"type":53,"tag":81,"props":1033,"children":1034},{"style":110},[1035],{"type":59,"value":810},{"type":53,"tag":81,"props":1037,"children":1038},{"style":104},[1039],{"type":59,"value":144},{"type":53,"tag":81,"props":1041,"children":1043},{"class":83,"line":1042},34,[1044],{"type":53,"tag":81,"props":1045,"children":1046},{"emptyLinePlaceholder":271},[1047],{"type":59,"value":274},{"type":53,"tag":81,"props":1049,"children":1051},{"class":83,"line":1050},35,[1052,1056,1060,1065,1069,1075,1079,1084,1088],{"type":53,"tag":81,"props":1053,"children":1054},{"style":110},[1055],{"type":59,"value":914},{"type":53,"tag":81,"props":1057,"children":1058},{"style":104},[1059],{"type":59,"value":351},{"type":53,"tag":81,"props":1061,"children":1062},{"style":498},[1063],{"type":59,"value":1064},"listen",{"type":53,"tag":81,"props":1066,"children":1067},{"style":110},[1068],{"type":59,"value":581},{"type":53,"tag":81,"props":1070,"children":1072},{"style":1071},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1073],{"type":59,"value":1074},"4000",{"type":53,"tag":81,"props":1076,"children":1077},{"style":104},[1078],{"type":59,"value":394},{"type":53,"tag":81,"props":1080,"children":1081},{"style":104},[1082],{"type":59,"value":1083}," ()",{"type":53,"tag":81,"props":1085,"children":1086},{"style":281},[1087],{"type":59,"value":725},{"type":53,"tag":81,"props":1089,"children":1090},{"style":104},[1091],{"type":59,"value":371},{"type":53,"tag":81,"props":1093,"children":1095},{"class":83,"line":1094},36,[1096,1101,1105,1110,1114,1118,1123,1127,1131],{"type":53,"tag":81,"props":1097,"children":1098},{"style":110},[1099],{"type":59,"value":1100},"  console",{"type":53,"tag":81,"props":1102,"children":1103},{"style":104},[1104],{"type":59,"value":351},{"type":53,"tag":81,"props":1106,"children":1107},{"style":498},[1108],{"type":59,"value":1109},"log",{"type":53,"tag":81,"props":1111,"children":1112},{"style":592},[1113],{"type":59,"value":581},{"type":53,"tag":81,"props":1115,"children":1116},{"style":104},[1117],{"type":59,"value":139},{"type":53,"tag":81,"props":1119,"children":1120},{"style":131},[1121],{"type":59,"value":1122},"Listening on http:\u002F\u002Flocalhost:4000",{"type":53,"tag":81,"props":1124,"children":1125},{"style":104},[1126],{"type":59,"value":139},{"type":53,"tag":81,"props":1128,"children":1129},{"style":592},[1130],{"type":59,"value":810},{"type":53,"tag":81,"props":1132,"children":1133},{"style":104},[1134],{"type":59,"value":144},{"type":53,"tag":81,"props":1136,"children":1138},{"class":83,"line":1137},37,[1139,1143,1147],{"type":53,"tag":81,"props":1140,"children":1141},{"style":104},[1142],{"type":59,"value":682},{"type":53,"tag":81,"props":1144,"children":1145},{"style":110},[1146],{"type":59,"value":810},{"type":53,"tag":81,"props":1148,"children":1149},{"style":104},[1150],{"type":59,"value":144},{"type":53,"tag":62,"props":1152,"children":1154},{"id":1153},"core-patterns",[1155],{"type":59,"value":1156},"Core Patterns",{"type":53,"tag":1158,"props":1159,"children":1161},"h3",{"id":1160},"accessing-express-reqres-in-context",[1162],{"type":59,"value":1163},"Accessing Express req\u002Fres in context",{"type":53,"tag":69,"props":1165,"children":1167},{"className":71,"code":1166,"language":73,"meta":74,"style":74},"import * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\n\nconst createContext = ({\n  req,\n  res,\n}: trpcExpress.CreateExpressContextOptions) => {\n  const token = req.headers.authorization?.split(' ')[1];\n  return { token, res };\n};\n\ntype Context = Awaited\u003CReturnType\u003Ctypeof createContext>>;\n",[1168],{"type":53,"tag":77,"props":1169,"children":1170},{"__ignoreMap":74},[1171,1210,1217,1240,1251,1262,1293,1373,1400,1407,1414],{"type":53,"tag":81,"props":1172,"children":1173},{"class":83,"line":84},[1174,1178,1182,1186,1190,1194,1198,1202,1206],{"type":53,"tag":81,"props":1175,"children":1176},{"style":98},[1177],{"type":59,"value":101},{"type":53,"tag":81,"props":1179,"children":1180},{"style":104},[1181],{"type":59,"value":157},{"type":53,"tag":81,"props":1183,"children":1184},{"style":98},[1185],{"type":59,"value":162},{"type":53,"tag":81,"props":1187,"children":1188},{"style":110},[1189],{"type":59,"value":167},{"type":53,"tag":81,"props":1191,"children":1192},{"style":98},[1193],{"type":59,"value":172},{"type":53,"tag":81,"props":1195,"children":1196},{"style":104},[1197],{"type":59,"value":128},{"type":53,"tag":81,"props":1199,"children":1200},{"style":131},[1201],{"type":59,"value":181},{"type":53,"tag":81,"props":1203,"children":1204},{"style":104},[1205],{"type":59,"value":139},{"type":53,"tag":81,"props":1207,"children":1208},{"style":104},[1209],{"type":59,"value":144},{"type":53,"tag":81,"props":1211,"children":1212},{"class":83,"line":94},[1213],{"type":53,"tag":81,"props":1214,"children":1215},{"emptyLinePlaceholder":271},[1216],{"type":59,"value":274},{"type":53,"tag":81,"props":1218,"children":1219},{"class":83,"line":147},[1220,1224,1228,1232,1236],{"type":53,"tag":81,"props":1221,"children":1222},{"style":281},[1223],{"type":59,"value":284},{"type":53,"tag":81,"props":1225,"children":1226},{"style":110},[1227],{"type":59,"value":289},{"type":53,"tag":81,"props":1229,"children":1230},{"style":104},[1231],{"type":59,"value":294},{"type":53,"tag":81,"props":1233,"children":1234},{"style":110},[1235],{"type":59,"value":299},{"type":53,"tag":81,"props":1237,"children":1238},{"style":104},[1239],{"type":59,"value":304},{"type":53,"tag":81,"props":1241,"children":1242},{"class":83,"line":192},[1243,1247],{"type":53,"tag":81,"props":1244,"children":1245},{"style":110},[1246],{"type":59,"value":313},{"type":53,"tag":81,"props":1248,"children":1249},{"style":104},[1250],{"type":59,"value":318},{"type":53,"tag":81,"props":1252,"children":1253},{"class":83,"line":225},[1254,1258],{"type":53,"tag":81,"props":1255,"children":1256},{"style":110},[1257],{"type":59,"value":327},{"type":53,"tag":81,"props":1259,"children":1260},{"style":104},[1261],{"type":59,"value":318},{"type":53,"tag":81,"props":1263,"children":1264},{"class":83,"line":267},[1265,1269,1273,1277,1281,1285,1289],{"type":53,"tag":81,"props":1266,"children":1267},{"style":104},[1268],{"type":59,"value":340},{"type":53,"tag":81,"props":1270,"children":1271},{"style":343},[1272],{"type":59,"value":346},{"type":53,"tag":81,"props":1274,"children":1275},{"style":104},[1276],{"type":59,"value":351},{"type":53,"tag":81,"props":1278,"children":1279},{"style":343},[1280],{"type":59,"value":356},{"type":53,"tag":81,"props":1282,"children":1283},{"style":110},[1284],{"type":59,"value":361},{"type":53,"tag":81,"props":1286,"children":1287},{"style":281},[1288],{"type":59,"value":366},{"type":53,"tag":81,"props":1290,"children":1291},{"style":104},[1292],{"type":59,"value":371},{"type":53,"tag":81,"props":1294,"children":1295},{"class":83,"line":277},[1296,1301,1306,1310,1314,1318,1323,1327,1332,1337,1342,1346,1350,1354,1359,1364,1369],{"type":53,"tag":81,"props":1297,"children":1298},{"style":281},[1299],{"type":59,"value":1300},"  const",{"type":53,"tag":81,"props":1302,"children":1303},{"style":110},[1304],{"type":59,"value":1305}," token",{"type":53,"tag":81,"props":1307,"children":1308},{"style":104},[1309],{"type":59,"value":432},{"type":53,"tag":81,"props":1311,"children":1312},{"style":110},[1313],{"type":59,"value":389},{"type":53,"tag":81,"props":1315,"children":1316},{"style":104},[1317],{"type":59,"value":351},{"type":53,"tag":81,"props":1319,"children":1320},{"style":110},[1321],{"type":59,"value":1322},"headers",{"type":53,"tag":81,"props":1324,"children":1325},{"style":104},[1326],{"type":59,"value":351},{"type":53,"tag":81,"props":1328,"children":1329},{"style":110},[1330],{"type":59,"value":1331},"authorization",{"type":53,"tag":81,"props":1333,"children":1334},{"style":104},[1335],{"type":59,"value":1336},"?.",{"type":53,"tag":81,"props":1338,"children":1339},{"style":498},[1340],{"type":59,"value":1341},"split",{"type":53,"tag":81,"props":1343,"children":1344},{"style":592},[1345],{"type":59,"value":581},{"type":53,"tag":81,"props":1347,"children":1348},{"style":104},[1349],{"type":59,"value":139},{"type":53,"tag":81,"props":1351,"children":1352},{"style":104},[1353],{"type":59,"value":128},{"type":53,"tag":81,"props":1355,"children":1356},{"style":592},[1357],{"type":59,"value":1358},")[",{"type":53,"tag":81,"props":1360,"children":1361},{"style":1071},[1362],{"type":59,"value":1363},"1",{"type":53,"tag":81,"props":1365,"children":1366},{"style":592},[1367],{"type":59,"value":1368},"]",{"type":53,"tag":81,"props":1370,"children":1371},{"style":104},[1372],{"type":59,"value":144},{"type":53,"tag":81,"props":1374,"children":1375},{"class":83,"line":307},[1376,1380,1384,1388,1392,1396],{"type":53,"tag":81,"props":1377,"children":1378},{"style":98},[1379],{"type":59,"value":380},{"type":53,"tag":81,"props":1381,"children":1382},{"style":104},[1383],{"type":59,"value":107},{"type":53,"tag":81,"props":1385,"children":1386},{"style":110},[1387],{"type":59,"value":1305},{"type":53,"tag":81,"props":1389,"children":1390},{"style":104},[1391],{"type":59,"value":394},{"type":53,"tag":81,"props":1393,"children":1394},{"style":110},[1395],{"type":59,"value":399},{"type":53,"tag":81,"props":1397,"children":1398},{"style":104},[1399],{"type":59,"value":404},{"type":53,"tag":81,"props":1401,"children":1402},{"class":83,"line":321},[1403],{"type":53,"tag":81,"props":1404,"children":1405},{"style":104},[1406],{"type":59,"value":413},{"type":53,"tag":81,"props":1408,"children":1409},{"class":83,"line":334},[1410],{"type":53,"tag":81,"props":1411,"children":1412},{"emptyLinePlaceholder":271},[1413],{"type":59,"value":274},{"type":53,"tag":81,"props":1415,"children":1416},{"class":83,"line":374},[1417,1421,1425,1429,1433,1437,1441,1445,1449],{"type":53,"tag":81,"props":1418,"children":1419},{"style":281},[1420],{"type":59,"value":422},{"type":53,"tag":81,"props":1422,"children":1423},{"style":343},[1424],{"type":59,"value":427},{"type":53,"tag":81,"props":1426,"children":1427},{"style":104},[1428],{"type":59,"value":432},{"type":53,"tag":81,"props":1430,"children":1431},{"style":343},[1432],{"type":59,"value":437},{"type":53,"tag":81,"props":1434,"children":1435},{"style":104},[1436],{"type":59,"value":442},{"type":53,"tag":81,"props":1438,"children":1439},{"style":343},[1440],{"type":59,"value":447},{"type":53,"tag":81,"props":1442,"children":1443},{"style":104},[1444],{"type":59,"value":452},{"type":53,"tag":81,"props":1446,"children":1447},{"style":110},[1448],{"type":59,"value":457},{"type":53,"tag":81,"props":1450,"children":1451},{"style":104},[1452],{"type":59,"value":462},{"type":53,"tag":1454,"props":1455,"children":1456},"p",{},[1457,1462,1464,1470,1472,1478],{"type":53,"tag":77,"props":1458,"children":1460},{"className":1459},[],[1461],{"type":59,"value":356},{"type":59,"value":1463}," provides typed access to the Express ",{"type":53,"tag":77,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":59,"value":1469},"req",{"type":59,"value":1471}," (IncomingMessage) and ",{"type":53,"tag":77,"props":1473,"children":1475},{"className":1474},[],[1476],{"type":59,"value":1477},"res",{"type":59,"value":1479}," (ServerResponse).",{"type":53,"tag":1158,"props":1481,"children":1483},{"id":1482},"adding-trpc-alongside-existing-express-routes",[1484],{"type":59,"value":1485},"Adding tRPC alongside existing Express routes",{"type":53,"tag":69,"props":1487,"children":1489},{"className":71,"code":1488,"language":73,"meta":74,"style":74},"import * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\nimport cors from 'cors';\nimport express from 'express';\nimport { createContext } from '.\u002Fcontext';\nimport { appRouter } from '.\u002Frouter';\n\nconst app = express();\n\napp.use(cors());\n\napp.get('\u002Fhealth', (_req, res) => {\n  res.json({ status: 'ok' });\n});\n\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n\napp.listen(4000);\n",[1490],{"type":53,"tag":77,"props":1491,"children":1492},{"__ignoreMap":74},[1493,1532,1565,1596,1636,1676,1683,1710,1717,1749,1756,1822,1880,1895,1902,1921,1940,1963,1982,1993,2008,2019,2026],{"type":53,"tag":81,"props":1494,"children":1495},{"class":83,"line":84},[1496,1500,1504,1508,1512,1516,1520,1524,1528],{"type":53,"tag":81,"props":1497,"children":1498},{"style":98},[1499],{"type":59,"value":101},{"type":53,"tag":81,"props":1501,"children":1502},{"style":104},[1503],{"type":59,"value":157},{"type":53,"tag":81,"props":1505,"children":1506},{"style":98},[1507],{"type":59,"value":162},{"type":53,"tag":81,"props":1509,"children":1510},{"style":110},[1511],{"type":59,"value":167},{"type":53,"tag":81,"props":1513,"children":1514},{"style":98},[1515],{"type":59,"value":172},{"type":53,"tag":81,"props":1517,"children":1518},{"style":104},[1519],{"type":59,"value":128},{"type":53,"tag":81,"props":1521,"children":1522},{"style":131},[1523],{"type":59,"value":181},{"type":53,"tag":81,"props":1525,"children":1526},{"style":104},[1527],{"type":59,"value":139},{"type":53,"tag":81,"props":1529,"children":1530},{"style":104},[1531],{"type":59,"value":144},{"type":53,"tag":81,"props":1533,"children":1534},{"class":83,"line":94},[1535,1539,1544,1548,1552,1557,1561],{"type":53,"tag":81,"props":1536,"children":1537},{"style":98},[1538],{"type":59,"value":101},{"type":53,"tag":81,"props":1540,"children":1541},{"style":110},[1542],{"type":59,"value":1543}," cors ",{"type":53,"tag":81,"props":1545,"children":1546},{"style":98},[1547],{"type":59,"value":172},{"type":53,"tag":81,"props":1549,"children":1550},{"style":104},[1551],{"type":59,"value":128},{"type":53,"tag":81,"props":1553,"children":1554},{"style":131},[1555],{"type":59,"value":1556},"cors",{"type":53,"tag":81,"props":1558,"children":1559},{"style":104},[1560],{"type":59,"value":139},{"type":53,"tag":81,"props":1562,"children":1563},{"style":104},[1564],{"type":59,"value":144},{"type":53,"tag":81,"props":1566,"children":1567},{"class":83,"line":147},[1568,1572,1576,1580,1584,1588,1592],{"type":53,"tag":81,"props":1569,"children":1570},{"style":98},[1571],{"type":59,"value":101},{"type":53,"tag":81,"props":1573,"children":1574},{"style":110},[1575],{"type":59,"value":202},{"type":53,"tag":81,"props":1577,"children":1578},{"style":98},[1579],{"type":59,"value":172},{"type":53,"tag":81,"props":1581,"children":1582},{"style":104},[1583],{"type":59,"value":128},{"type":53,"tag":81,"props":1585,"children":1586},{"style":131},[1587],{"type":59,"value":18},{"type":53,"tag":81,"props":1589,"children":1590},{"style":104},[1591],{"type":59,"value":139},{"type":53,"tag":81,"props":1593,"children":1594},{"style":104},[1595],{"type":59,"value":144},{"type":53,"tag":81,"props":1597,"children":1598},{"class":83,"line":192},[1599,1603,1607,1611,1615,1619,1623,1628,1632],{"type":53,"tag":81,"props":1600,"children":1601},{"style":98},[1602],{"type":59,"value":101},{"type":53,"tag":81,"props":1604,"children":1605},{"style":104},[1606],{"type":59,"value":107},{"type":53,"tag":81,"props":1608,"children":1609},{"style":110},[1610],{"type":59,"value":457},{"type":53,"tag":81,"props":1612,"children":1613},{"style":104},[1614],{"type":59,"value":118},{"type":53,"tag":81,"props":1616,"children":1617},{"style":98},[1618],{"type":59,"value":123},{"type":53,"tag":81,"props":1620,"children":1621},{"style":104},[1622],{"type":59,"value":128},{"type":53,"tag":81,"props":1624,"children":1625},{"style":131},[1626],{"type":59,"value":1627},".\u002Fcontext",{"type":53,"tag":81,"props":1629,"children":1630},{"style":104},[1631],{"type":59,"value":139},{"type":53,"tag":81,"props":1633,"children":1634},{"style":104},[1635],{"type":59,"value":144},{"type":53,"tag":81,"props":1637,"children":1638},{"class":83,"line":225},[1639,1643,1647,1651,1655,1659,1663,1668,1672],{"type":53,"tag":81,"props":1640,"children":1641},{"style":98},[1642],{"type":59,"value":101},{"type":53,"tag":81,"props":1644,"children":1645},{"style":104},[1646],{"type":59,"value":107},{"type":53,"tag":81,"props":1648,"children":1649},{"style":110},[1650],{"type":59,"value":855},{"type":53,"tag":81,"props":1652,"children":1653},{"style":104},[1654],{"type":59,"value":118},{"type":53,"tag":81,"props":1656,"children":1657},{"style":98},[1658],{"type":59,"value":123},{"type":53,"tag":81,"props":1660,"children":1661},{"style":104},[1662],{"type":59,"value":128},{"type":53,"tag":81,"props":1664,"children":1665},{"style":131},[1666],{"type":59,"value":1667},".\u002Frouter",{"type":53,"tag":81,"props":1669,"children":1670},{"style":104},[1671],{"type":59,"value":139},{"type":53,"tag":81,"props":1673,"children":1674},{"style":104},[1675],{"type":59,"value":144},{"type":53,"tag":81,"props":1677,"children":1678},{"class":83,"line":267},[1679],{"type":53,"tag":81,"props":1680,"children":1681},{"emptyLinePlaceholder":271},[1682],{"type":59,"value":274},{"type":53,"tag":81,"props":1684,"children":1685},{"class":83,"line":277},[1686,1690,1694,1698,1702,1706],{"type":53,"tag":81,"props":1687,"children":1688},{"style":281},[1689],{"type":59,"value":284},{"type":53,"tag":81,"props":1691,"children":1692},{"style":110},[1693],{"type":59,"value":880},{"type":53,"tag":81,"props":1695,"children":1696},{"style":104},[1697],{"type":59,"value":294},{"type":53,"tag":81,"props":1699,"children":1700},{"style":498},[1701],{"type":59,"value":889},{"type":53,"tag":81,"props":1703,"children":1704},{"style":110},[1705],{"type":59,"value":520},{"type":53,"tag":81,"props":1707,"children":1708},{"style":104},[1709],{"type":59,"value":144},{"type":53,"tag":81,"props":1711,"children":1712},{"class":83,"line":307},[1713],{"type":53,"tag":81,"props":1714,"children":1715},{"emptyLinePlaceholder":271},[1716],{"type":59,"value":274},{"type":53,"tag":81,"props":1718,"children":1719},{"class":83,"line":321},[1720,1724,1728,1732,1736,1740,1745],{"type":53,"tag":81,"props":1721,"children":1722},{"style":110},[1723],{"type":59,"value":914},{"type":53,"tag":81,"props":1725,"children":1726},{"style":104},[1727],{"type":59,"value":351},{"type":53,"tag":81,"props":1729,"children":1730},{"style":498},[1731],{"type":59,"value":923},{"type":53,"tag":81,"props":1733,"children":1734},{"style":110},[1735],{"type":59,"value":581},{"type":53,"tag":81,"props":1737,"children":1738},{"style":498},[1739],{"type":59,"value":1556},{"type":53,"tag":81,"props":1741,"children":1742},{"style":110},[1743],{"type":59,"value":1744},"())",{"type":53,"tag":81,"props":1746,"children":1747},{"style":104},[1748],{"type":59,"value":144},{"type":53,"tag":81,"props":1750,"children":1751},{"class":83,"line":334},[1752],{"type":53,"tag":81,"props":1753,"children":1754},{"emptyLinePlaceholder":271},[1755],{"type":59,"value":274},{"type":53,"tag":81,"props":1757,"children":1758},{"class":83,"line":374},[1759,1763,1767,1772,1776,1780,1785,1789,1793,1797,1802,1806,1810,1814,1818],{"type":53,"tag":81,"props":1760,"children":1761},{"style":110},[1762],{"type":59,"value":914},{"type":53,"tag":81,"props":1764,"children":1765},{"style":104},[1766],{"type":59,"value":351},{"type":53,"tag":81,"props":1768,"children":1769},{"style":498},[1770],{"type":59,"value":1771},"get",{"type":53,"tag":81,"props":1773,"children":1774},{"style":110},[1775],{"type":59,"value":581},{"type":53,"tag":81,"props":1777,"children":1778},{"style":104},[1779],{"type":59,"value":139},{"type":53,"tag":81,"props":1781,"children":1782},{"style":131},[1783],{"type":59,"value":1784},"\u002Fhealth",{"type":53,"tag":81,"props":1786,"children":1787},{"style":104},[1788],{"type":59,"value":139},{"type":53,"tag":81,"props":1790,"children":1791},{"style":104},[1792],{"type":59,"value":394},{"type":53,"tag":81,"props":1794,"children":1795},{"style":104},[1796],{"type":59,"value":299},{"type":53,"tag":81,"props":1798,"children":1799},{"style":712},[1800],{"type":59,"value":1801},"_req",{"type":53,"tag":81,"props":1803,"children":1804},{"style":104},[1805],{"type":59,"value":394},{"type":53,"tag":81,"props":1807,"children":1808},{"style":712},[1809],{"type":59,"value":399},{"type":53,"tag":81,"props":1811,"children":1812},{"style":104},[1813],{"type":59,"value":810},{"type":53,"tag":81,"props":1815,"children":1816},{"style":281},[1817],{"type":59,"value":725},{"type":53,"tag":81,"props":1819,"children":1820},{"style":104},[1821],{"type":59,"value":371},{"type":53,"tag":81,"props":1823,"children":1824},{"class":83,"line":407},[1825,1829,1833,1838,1842,1846,1851,1855,1859,1864,1868,1872,1876],{"type":53,"tag":81,"props":1826,"children":1827},{"style":110},[1828],{"type":59,"value":327},{"type":53,"tag":81,"props":1830,"children":1831},{"style":104},[1832],{"type":59,"value":351},{"type":53,"tag":81,"props":1834,"children":1835},{"style":498},[1836],{"type":59,"value":1837},"json",{"type":53,"tag":81,"props":1839,"children":1840},{"style":592},[1841],{"type":59,"value":581},{"type":53,"tag":81,"props":1843,"children":1844},{"style":104},[1845],{"type":59,"value":650},{"type":53,"tag":81,"props":1847,"children":1848},{"style":592},[1849],{"type":59,"value":1850}," status",{"type":53,"tag":81,"props":1852,"children":1853},{"style":104},[1854],{"type":59,"value":600},{"type":53,"tag":81,"props":1856,"children":1857},{"style":104},[1858],{"type":59,"value":128},{"type":53,"tag":81,"props":1860,"children":1861},{"style":131},[1862],{"type":59,"value":1863},"ok",{"type":53,"tag":81,"props":1865,"children":1866},{"style":104},[1867],{"type":59,"value":139},{"type":53,"tag":81,"props":1869,"children":1870},{"style":104},[1871],{"type":59,"value":118},{"type":53,"tag":81,"props":1873,"children":1874},{"style":592},[1875],{"type":59,"value":810},{"type":53,"tag":81,"props":1877,"children":1878},{"style":104},[1879],{"type":59,"value":144},{"type":53,"tag":81,"props":1881,"children":1882},{"class":83,"line":416},[1883,1887,1891],{"type":53,"tag":81,"props":1884,"children":1885},{"style":104},[1886],{"type":59,"value":682},{"type":53,"tag":81,"props":1888,"children":1889},{"style":110},[1890],{"type":59,"value":810},{"type":53,"tag":81,"props":1892,"children":1893},{"style":104},[1894],{"type":59,"value":144},{"type":53,"tag":81,"props":1896,"children":1897},{"class":83,"line":465},[1898],{"type":53,"tag":81,"props":1899,"children":1900},{"emptyLinePlaceholder":271},[1901],{"type":59,"value":274},{"type":53,"tag":81,"props":1903,"children":1904},{"class":83,"line":473},[1905,1909,1913,1917],{"type":53,"tag":81,"props":1906,"children":1907},{"style":110},[1908],{"type":59,"value":914},{"type":53,"tag":81,"props":1910,"children":1911},{"style":104},[1912],{"type":59,"value":351},{"type":53,"tag":81,"props":1914,"children":1915},{"style":498},[1916],{"type":59,"value":923},{"type":53,"tag":81,"props":1918,"children":1919},{"style":110},[1920],{"type":59,"value":928},{"type":53,"tag":81,"props":1922,"children":1923},{"class":83,"line":540},[1924,1928,1932,1936],{"type":53,"tag":81,"props":1925,"children":1926},{"style":104},[1927],{"type":59,"value":937},{"type":53,"tag":81,"props":1929,"children":1930},{"style":131},[1931],{"type":59,"value":942},{"type":53,"tag":81,"props":1933,"children":1934},{"style":104},[1935],{"type":59,"value":139},{"type":53,"tag":81,"props":1937,"children":1938},{"style":104},[1939],{"type":59,"value":318},{"type":53,"tag":81,"props":1941,"children":1942},{"class":83,"line":548},[1943,1947,1951,1955,1959],{"type":53,"tag":81,"props":1944,"children":1945},{"style":110},[1946],{"type":59,"value":959},{"type":53,"tag":81,"props":1948,"children":1949},{"style":104},[1950],{"type":59,"value":351},{"type":53,"tag":81,"props":1952,"children":1953},{"style":498},[1954],{"type":59,"value":968},{"type":53,"tag":81,"props":1956,"children":1957},{"style":110},[1958],{"type":59,"value":581},{"type":53,"tag":81,"props":1960,"children":1961},{"style":104},[1962],{"type":59,"value":304},{"type":53,"tag":81,"props":1964,"children":1965},{"class":83,"line":588},[1966,1970,1974,1978],{"type":53,"tag":81,"props":1967,"children":1968},{"style":592},[1969],{"type":59,"value":985},{"type":53,"tag":81,"props":1971,"children":1972},{"style":104},[1973],{"type":59,"value":600},{"type":53,"tag":81,"props":1975,"children":1976},{"style":110},[1977],{"type":59,"value":855},{"type":53,"tag":81,"props":1979,"children":1980},{"style":104},[1981],{"type":59,"value":318},{"type":53,"tag":81,"props":1983,"children":1984},{"class":83,"line":616},[1985,1989],{"type":53,"tag":81,"props":1986,"children":1987},{"style":110},[1988],{"type":59,"value":1006},{"type":53,"tag":81,"props":1990,"children":1991},{"style":104},[1992],{"type":59,"value":318},{"type":53,"tag":81,"props":1994,"children":1995},{"class":83,"line":690},[1996,2000,2004],{"type":53,"tag":81,"props":1997,"children":1998},{"style":104},[1999],{"type":59,"value":1019},{"type":53,"tag":81,"props":2001,"children":2002},{"style":110},[2003],{"type":59,"value":810},{"type":53,"tag":81,"props":2005,"children":2006},{"style":104},[2007],{"type":59,"value":318},{"type":53,"tag":81,"props":2009,"children":2010},{"class":83,"line":800},[2011,2015],{"type":53,"tag":81,"props":2012,"children":2013},{"style":110},[2014],{"type":59,"value":810},{"type":53,"tag":81,"props":2016,"children":2017},{"style":104},[2018],{"type":59,"value":144},{"type":53,"tag":81,"props":2020,"children":2021},{"class":83,"line":817},[2022],{"type":53,"tag":81,"props":2023,"children":2024},{"emptyLinePlaceholder":271},[2025],{"type":59,"value":274},{"type":53,"tag":81,"props":2027,"children":2028},{"class":83,"line":825},[2029,2033,2037,2041,2045,2049,2053],{"type":53,"tag":81,"props":2030,"children":2031},{"style":110},[2032],{"type":59,"value":914},{"type":53,"tag":81,"props":2034,"children":2035},{"style":104},[2036],{"type":59,"value":351},{"type":53,"tag":81,"props":2038,"children":2039},{"style":498},[2040],{"type":59,"value":1064},{"type":53,"tag":81,"props":2042,"children":2043},{"style":110},[2044],{"type":59,"value":581},{"type":53,"tag":81,"props":2046,"children":2047},{"style":1071},[2048],{"type":59,"value":1074},{"type":53,"tag":81,"props":2050,"children":2051},{"style":110},[2052],{"type":59,"value":810},{"type":53,"tag":81,"props":2054,"children":2055},{"style":104},[2056],{"type":59,"value":144},{"type":53,"tag":1158,"props":2058,"children":2060},{"id":2059},"limiting-batch-size-with-maxbatchsize",[2061],{"type":59,"value":2062},"Limiting batch size with maxBatchSize",{"type":53,"tag":69,"props":2064,"children":2066},{"className":71,"code":2065,"language":73,"meta":74,"style":74},"import * as trpcExpress from '@trpc\u002Fserver\u002Fadapters\u002Fexpress';\nimport express from 'express';\nimport { createContext } from '.\u002Fcontext';\nimport { appRouter } from '.\u002Frouter';\n\nconst app = express();\n\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n    maxBatchSize: 10,\n  }),\n);\n\napp.listen(4000);\n",[2067],{"type":53,"tag":77,"props":2068,"children":2069},{"__ignoreMap":74},[2070,2109,2140,2179,2218,2225,2252,2259,2278,2297,2320,2339,2350,2371,2386,2397,2404],{"type":53,"tag":81,"props":2071,"children":2072},{"class":83,"line":84},[2073,2077,2081,2085,2089,2093,2097,2101,2105],{"type":53,"tag":81,"props":2074,"children":2075},{"style":98},[2076],{"type":59,"value":101},{"type":53,"tag":81,"props":2078,"children":2079},{"style":104},[2080],{"type":59,"value":157},{"type":53,"tag":81,"props":2082,"children":2083},{"style":98},[2084],{"type":59,"value":162},{"type":53,"tag":81,"props":2086,"children":2087},{"style":110},[2088],{"type":59,"value":167},{"type":53,"tag":81,"props":2090,"children":2091},{"style":98},[2092],{"type":59,"value":172},{"type":53,"tag":81,"props":2094,"children":2095},{"style":104},[2096],{"type":59,"value":128},{"type":53,"tag":81,"props":2098,"children":2099},{"style":131},[2100],{"type":59,"value":181},{"type":53,"tag":81,"props":2102,"children":2103},{"style":104},[2104],{"type":59,"value":139},{"type":53,"tag":81,"props":2106,"children":2107},{"style":104},[2108],{"type":59,"value":144},{"type":53,"tag":81,"props":2110,"children":2111},{"class":83,"line":94},[2112,2116,2120,2124,2128,2132,2136],{"type":53,"tag":81,"props":2113,"children":2114},{"style":98},[2115],{"type":59,"value":101},{"type":53,"tag":81,"props":2117,"children":2118},{"style":110},[2119],{"type":59,"value":202},{"type":53,"tag":81,"props":2121,"children":2122},{"style":98},[2123],{"type":59,"value":172},{"type":53,"tag":81,"props":2125,"children":2126},{"style":104},[2127],{"type":59,"value":128},{"type":53,"tag":81,"props":2129,"children":2130},{"style":131},[2131],{"type":59,"value":18},{"type":53,"tag":81,"props":2133,"children":2134},{"style":104},[2135],{"type":59,"value":139},{"type":53,"tag":81,"props":2137,"children":2138},{"style":104},[2139],{"type":59,"value":144},{"type":53,"tag":81,"props":2141,"children":2142},{"class":83,"line":147},[2143,2147,2151,2155,2159,2163,2167,2171,2175],{"type":53,"tag":81,"props":2144,"children":2145},{"style":98},[2146],{"type":59,"value":101},{"type":53,"tag":81,"props":2148,"children":2149},{"style":104},[2150],{"type":59,"value":107},{"type":53,"tag":81,"props":2152,"children":2153},{"style":110},[2154],{"type":59,"value":457},{"type":53,"tag":81,"props":2156,"children":2157},{"style":104},[2158],{"type":59,"value":118},{"type":53,"tag":81,"props":2160,"children":2161},{"style":98},[2162],{"type":59,"value":123},{"type":53,"tag":81,"props":2164,"children":2165},{"style":104},[2166],{"type":59,"value":128},{"type":53,"tag":81,"props":2168,"children":2169},{"style":131},[2170],{"type":59,"value":1627},{"type":53,"tag":81,"props":2172,"children":2173},{"style":104},[2174],{"type":59,"value":139},{"type":53,"tag":81,"props":2176,"children":2177},{"style":104},[2178],{"type":59,"value":144},{"type":53,"tag":81,"props":2180,"children":2181},{"class":83,"line":192},[2182,2186,2190,2194,2198,2202,2206,2210,2214],{"type":53,"tag":81,"props":2183,"children":2184},{"style":98},[2185],{"type":59,"value":101},{"type":53,"tag":81,"props":2187,"children":2188},{"style":104},[2189],{"type":59,"value":107},{"type":53,"tag":81,"props":2191,"children":2192},{"style":110},[2193],{"type":59,"value":855},{"type":53,"tag":81,"props":2195,"children":2196},{"style":104},[2197],{"type":59,"value":118},{"type":53,"tag":81,"props":2199,"children":2200},{"style":98},[2201],{"type":59,"value":123},{"type":53,"tag":81,"props":2203,"children":2204},{"style":104},[2205],{"type":59,"value":128},{"type":53,"tag":81,"props":2207,"children":2208},{"style":131},[2209],{"type":59,"value":1667},{"type":53,"tag":81,"props":2211,"children":2212},{"style":104},[2213],{"type":59,"value":139},{"type":53,"tag":81,"props":2215,"children":2216},{"style":104},[2217],{"type":59,"value":144},{"type":53,"tag":81,"props":2219,"children":2220},{"class":83,"line":225},[2221],{"type":53,"tag":81,"props":2222,"children":2223},{"emptyLinePlaceholder":271},[2224],{"type":59,"value":274},{"type":53,"tag":81,"props":2226,"children":2227},{"class":83,"line":267},[2228,2232,2236,2240,2244,2248],{"type":53,"tag":81,"props":2229,"children":2230},{"style":281},[2231],{"type":59,"value":284},{"type":53,"tag":81,"props":2233,"children":2234},{"style":110},[2235],{"type":59,"value":880},{"type":53,"tag":81,"props":2237,"children":2238},{"style":104},[2239],{"type":59,"value":294},{"type":53,"tag":81,"props":2241,"children":2242},{"style":498},[2243],{"type":59,"value":889},{"type":53,"tag":81,"props":2245,"children":2246},{"style":110},[2247],{"type":59,"value":520},{"type":53,"tag":81,"props":2249,"children":2250},{"style":104},[2251],{"type":59,"value":144},{"type":53,"tag":81,"props":2253,"children":2254},{"class":83,"line":277},[2255],{"type":53,"tag":81,"props":2256,"children":2257},{"emptyLinePlaceholder":271},[2258],{"type":59,"value":274},{"type":53,"tag":81,"props":2260,"children":2261},{"class":83,"line":307},[2262,2266,2270,2274],{"type":53,"tag":81,"props":2263,"children":2264},{"style":110},[2265],{"type":59,"value":914},{"type":53,"tag":81,"props":2267,"children":2268},{"style":104},[2269],{"type":59,"value":351},{"type":53,"tag":81,"props":2271,"children":2272},{"style":498},[2273],{"type":59,"value":923},{"type":53,"tag":81,"props":2275,"children":2276},{"style":110},[2277],{"type":59,"value":928},{"type":53,"tag":81,"props":2279,"children":2280},{"class":83,"line":321},[2281,2285,2289,2293],{"type":53,"tag":81,"props":2282,"children":2283},{"style":104},[2284],{"type":59,"value":937},{"type":53,"tag":81,"props":2286,"children":2287},{"style":131},[2288],{"type":59,"value":942},{"type":53,"tag":81,"props":2290,"children":2291},{"style":104},[2292],{"type":59,"value":139},{"type":53,"tag":81,"props":2294,"children":2295},{"style":104},[2296],{"type":59,"value":318},{"type":53,"tag":81,"props":2298,"children":2299},{"class":83,"line":334},[2300,2304,2308,2312,2316],{"type":53,"tag":81,"props":2301,"children":2302},{"style":110},[2303],{"type":59,"value":959},{"type":53,"tag":81,"props":2305,"children":2306},{"style":104},[2307],{"type":59,"value":351},{"type":53,"tag":81,"props":2309,"children":2310},{"style":498},[2311],{"type":59,"value":968},{"type":53,"tag":81,"props":2313,"children":2314},{"style":110},[2315],{"type":59,"value":581},{"type":53,"tag":81,"props":2317,"children":2318},{"style":104},[2319],{"type":59,"value":304},{"type":53,"tag":81,"props":2321,"children":2322},{"class":83,"line":374},[2323,2327,2331,2335],{"type":53,"tag":81,"props":2324,"children":2325},{"style":592},[2326],{"type":59,"value":985},{"type":53,"tag":81,"props":2328,"children":2329},{"style":104},[2330],{"type":59,"value":600},{"type":53,"tag":81,"props":2332,"children":2333},{"style":110},[2334],{"type":59,"value":855},{"type":53,"tag":81,"props":2336,"children":2337},{"style":104},[2338],{"type":59,"value":318},{"type":53,"tag":81,"props":2340,"children":2341},{"class":83,"line":407},[2342,2346],{"type":53,"tag":81,"props":2343,"children":2344},{"style":110},[2345],{"type":59,"value":1006},{"type":53,"tag":81,"props":2347,"children":2348},{"style":104},[2349],{"type":59,"value":318},{"type":53,"tag":81,"props":2351,"children":2352},{"class":83,"line":416},[2353,2358,2362,2367],{"type":53,"tag":81,"props":2354,"children":2355},{"style":592},[2356],{"type":59,"value":2357},"    maxBatchSize",{"type":53,"tag":81,"props":2359,"children":2360},{"style":104},[2361],{"type":59,"value":600},{"type":53,"tag":81,"props":2363,"children":2364},{"style":1071},[2365],{"type":59,"value":2366}," 10",{"type":53,"tag":81,"props":2368,"children":2369},{"style":104},[2370],{"type":59,"value":318},{"type":53,"tag":81,"props":2372,"children":2373},{"class":83,"line":465},[2374,2378,2382],{"type":53,"tag":81,"props":2375,"children":2376},{"style":104},[2377],{"type":59,"value":1019},{"type":53,"tag":81,"props":2379,"children":2380},{"style":110},[2381],{"type":59,"value":810},{"type":53,"tag":81,"props":2383,"children":2384},{"style":104},[2385],{"type":59,"value":318},{"type":53,"tag":81,"props":2387,"children":2388},{"class":83,"line":473},[2389,2393],{"type":53,"tag":81,"props":2390,"children":2391},{"style":110},[2392],{"type":59,"value":810},{"type":53,"tag":81,"props":2394,"children":2395},{"style":104},[2396],{"type":59,"value":144},{"type":53,"tag":81,"props":2398,"children":2399},{"class":83,"line":540},[2400],{"type":53,"tag":81,"props":2401,"children":2402},{"emptyLinePlaceholder":271},[2403],{"type":59,"value":274},{"type":53,"tag":81,"props":2405,"children":2406},{"class":83,"line":548},[2407,2411,2415,2419,2423,2427,2431],{"type":53,"tag":81,"props":2408,"children":2409},{"style":110},[2410],{"type":59,"value":914},{"type":53,"tag":81,"props":2412,"children":2413},{"style":104},[2414],{"type":59,"value":351},{"type":53,"tag":81,"props":2416,"children":2417},{"style":498},[2418],{"type":59,"value":1064},{"type":53,"tag":81,"props":2420,"children":2421},{"style":110},[2422],{"type":59,"value":581},{"type":53,"tag":81,"props":2424,"children":2425},{"style":1071},[2426],{"type":59,"value":1074},{"type":53,"tag":81,"props":2428,"children":2429},{"style":110},[2430],{"type":59,"value":810},{"type":53,"tag":81,"props":2432,"children":2433},{"style":104},[2434],{"type":59,"value":144},{"type":53,"tag":1454,"props":2436,"children":2437},{},[2438,2440,2446,2448,2454,2456,2462,2464,2470],{"type":59,"value":2439},"Requests batching more than ",{"type":53,"tag":77,"props":2441,"children":2443},{"className":2442},[],[2444],{"type":59,"value":2445},"maxBatchSize",{"type":59,"value":2447}," operations are rejected with a ",{"type":53,"tag":77,"props":2449,"children":2451},{"className":2450},[],[2452],{"type":59,"value":2453},"400 Bad Request",{"type":59,"value":2455}," error. Set ",{"type":53,"tag":77,"props":2457,"children":2459},{"className":2458},[],[2460],{"type":59,"value":2461},"maxItems",{"type":59,"value":2463}," on your client's ",{"type":53,"tag":77,"props":2465,"children":2467},{"className":2466},[],[2468],{"type":59,"value":2469},"httpBatchLink",{"type":59,"value":2471}," to the same value to avoid exceeding the limit.",{"type":53,"tag":62,"props":2473,"children":2475},{"id":2474},"common-mistakes",[2476],{"type":59,"value":2477},"Common Mistakes",{"type":53,"tag":1158,"props":2479,"children":2481},{"id":2480},"high-global-expressjson-consuming-trpc-request-body",[2482],{"type":59,"value":2483},"HIGH Global express.json() consuming tRPC request body",{"type":53,"tag":1454,"props":2485,"children":2486},{},[2487],{"type":59,"value":2488},"Wrong:",{"type":53,"tag":69,"props":2490,"children":2492},{"className":71,"code":2491,"language":73,"meta":74,"style":74},"const app = express();\napp.use(express.json()); \u002F\u002F global body parser\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n",[2493],{"type":53,"tag":77,"props":2494,"children":2495},{"__ignoreMap":74},[2496,2523,2565,2584,2603,2626,2645,2656,2671],{"type":53,"tag":81,"props":2497,"children":2498},{"class":83,"line":84},[2499,2503,2507,2511,2515,2519],{"type":53,"tag":81,"props":2500,"children":2501},{"style":281},[2502],{"type":59,"value":284},{"type":53,"tag":81,"props":2504,"children":2505},{"style":110},[2506],{"type":59,"value":880},{"type":53,"tag":81,"props":2508,"children":2509},{"style":104},[2510],{"type":59,"value":294},{"type":53,"tag":81,"props":2512,"children":2513},{"style":498},[2514],{"type":59,"value":889},{"type":53,"tag":81,"props":2516,"children":2517},{"style":110},[2518],{"type":59,"value":520},{"type":53,"tag":81,"props":2520,"children":2521},{"style":104},[2522],{"type":59,"value":144},{"type":53,"tag":81,"props":2524,"children":2525},{"class":83,"line":94},[2526,2530,2534,2538,2543,2547,2551,2555,2560],{"type":53,"tag":81,"props":2527,"children":2528},{"style":110},[2529],{"type":59,"value":914},{"type":53,"tag":81,"props":2531,"children":2532},{"style":104},[2533],{"type":59,"value":351},{"type":53,"tag":81,"props":2535,"children":2536},{"style":498},[2537],{"type":59,"value":923},{"type":53,"tag":81,"props":2539,"children":2540},{"style":110},[2541],{"type":59,"value":2542},"(express",{"type":53,"tag":81,"props":2544,"children":2545},{"style":104},[2546],{"type":59,"value":351},{"type":53,"tag":81,"props":2548,"children":2549},{"style":498},[2550],{"type":59,"value":1837},{"type":53,"tag":81,"props":2552,"children":2553},{"style":110},[2554],{"type":59,"value":1744},{"type":53,"tag":81,"props":2556,"children":2557},{"style":104},[2558],{"type":59,"value":2559},";",{"type":53,"tag":81,"props":2561,"children":2562},{"style":88},[2563],{"type":59,"value":2564}," \u002F\u002F global body parser\n",{"type":53,"tag":81,"props":2566,"children":2567},{"class":83,"line":147},[2568,2572,2576,2580],{"type":53,"tag":81,"props":2569,"children":2570},{"style":110},[2571],{"type":59,"value":914},{"type":53,"tag":81,"props":2573,"children":2574},{"style":104},[2575],{"type":59,"value":351},{"type":53,"tag":81,"props":2577,"children":2578},{"style":498},[2579],{"type":59,"value":923},{"type":53,"tag":81,"props":2581,"children":2582},{"style":110},[2583],{"type":59,"value":928},{"type":53,"tag":81,"props":2585,"children":2586},{"class":83,"line":192},[2587,2591,2595,2599],{"type":53,"tag":81,"props":2588,"children":2589},{"style":104},[2590],{"type":59,"value":937},{"type":53,"tag":81,"props":2592,"children":2593},{"style":131},[2594],{"type":59,"value":942},{"type":53,"tag":81,"props":2596,"children":2597},{"style":104},[2598],{"type":59,"value":139},{"type":53,"tag":81,"props":2600,"children":2601},{"style":104},[2602],{"type":59,"value":318},{"type":53,"tag":81,"props":2604,"children":2605},{"class":83,"line":225},[2606,2610,2614,2618,2622],{"type":53,"tag":81,"props":2607,"children":2608},{"style":110},[2609],{"type":59,"value":959},{"type":53,"tag":81,"props":2611,"children":2612},{"style":104},[2613],{"type":59,"value":351},{"type":53,"tag":81,"props":2615,"children":2616},{"style":498},[2617],{"type":59,"value":968},{"type":53,"tag":81,"props":2619,"children":2620},{"style":110},[2621],{"type":59,"value":581},{"type":53,"tag":81,"props":2623,"children":2624},{"style":104},[2625],{"type":59,"value":304},{"type":53,"tag":81,"props":2627,"children":2628},{"class":83,"line":267},[2629,2633,2637,2641],{"type":53,"tag":81,"props":2630,"children":2631},{"style":592},[2632],{"type":59,"value":985},{"type":53,"tag":81,"props":2634,"children":2635},{"style":104},[2636],{"type":59,"value":600},{"type":53,"tag":81,"props":2638,"children":2639},{"style":110},[2640],{"type":59,"value":855},{"type":53,"tag":81,"props":2642,"children":2643},{"style":104},[2644],{"type":59,"value":318},{"type":53,"tag":81,"props":2646,"children":2647},{"class":83,"line":277},[2648,2652],{"type":53,"tag":81,"props":2649,"children":2650},{"style":110},[2651],{"type":59,"value":1006},{"type":53,"tag":81,"props":2653,"children":2654},{"style":104},[2655],{"type":59,"value":318},{"type":53,"tag":81,"props":2657,"children":2658},{"class":83,"line":307},[2659,2663,2667],{"type":53,"tag":81,"props":2660,"children":2661},{"style":104},[2662],{"type":59,"value":1019},{"type":53,"tag":81,"props":2664,"children":2665},{"style":110},[2666],{"type":59,"value":810},{"type":53,"tag":81,"props":2668,"children":2669},{"style":104},[2670],{"type":59,"value":318},{"type":53,"tag":81,"props":2672,"children":2673},{"class":83,"line":321},[2674,2678],{"type":53,"tag":81,"props":2675,"children":2676},{"style":110},[2677],{"type":59,"value":810},{"type":53,"tag":81,"props":2679,"children":2680},{"style":104},[2681],{"type":59,"value":144},{"type":53,"tag":1454,"props":2683,"children":2684},{},[2685],{"type":59,"value":2686},"Correct:",{"type":53,"tag":69,"props":2688,"children":2690},{"className":71,"code":2689,"language":73,"meta":74,"style":74},"const app = express();\n\u002F\u002F Only apply body parser to non-tRPC routes\napp.use('\u002Fapi', express.json());\napp.use(\n  '\u002Ftrpc',\n  trpcExpress.createExpressMiddleware({\n    router: appRouter,\n    createContext,\n  }),\n);\n",[2691],{"type":53,"tag":77,"props":2692,"children":2693},{"__ignoreMap":74},[2694,2721,2729,2785,2804,2823,2846,2865,2876,2891],{"type":53,"tag":81,"props":2695,"children":2696},{"class":83,"line":84},[2697,2701,2705,2709,2713,2717],{"type":53,"tag":81,"props":2698,"children":2699},{"style":281},[2700],{"type":59,"value":284},{"type":53,"tag":81,"props":2702,"children":2703},{"style":110},[2704],{"type":59,"value":880},{"type":53,"tag":81,"props":2706,"children":2707},{"style":104},[2708],{"type":59,"value":294},{"type":53,"tag":81,"props":2710,"children":2711},{"style":498},[2712],{"type":59,"value":889},{"type":53,"tag":81,"props":2714,"children":2715},{"style":110},[2716],{"type":59,"value":520},{"type":53,"tag":81,"props":2718,"children":2719},{"style":104},[2720],{"type":59,"value":144},{"type":53,"tag":81,"props":2722,"children":2723},{"class":83,"line":94},[2724],{"type":53,"tag":81,"props":2725,"children":2726},{"style":88},[2727],{"type":59,"value":2728},"\u002F\u002F Only apply body parser to non-tRPC routes\n",{"type":53,"tag":81,"props":2730,"children":2731},{"class":83,"line":147},[2732,2736,2740,2744,2748,2752,2757,2761,2765,2769,2773,2777,2781],{"type":53,"tag":81,"props":2733,"children":2734},{"style":110},[2735],{"type":59,"value":914},{"type":53,"tag":81,"props":2737,"children":2738},{"style":104},[2739],{"type":59,"value":351},{"type":53,"tag":81,"props":2741,"children":2742},{"style":498},[2743],{"type":59,"value":923},{"type":53,"tag":81,"props":2745,"children":2746},{"style":110},[2747],{"type":59,"value":581},{"type":53,"tag":81,"props":2749,"children":2750},{"style":104},[2751],{"type":59,"value":139},{"type":53,"tag":81,"props":2753,"children":2754},{"style":131},[2755],{"type":59,"value":2756},"\u002Fapi",{"type":53,"tag":81,"props":2758,"children":2759},{"style":104},[2760],{"type":59,"value":139},{"type":53,"tag":81,"props":2762,"children":2763},{"style":104},[2764],{"type":59,"value":394},{"type":53,"tag":81,"props":2766,"children":2767},{"style":110},[2768],{"type":59,"value":889},{"type":53,"tag":81,"props":2770,"children":2771},{"style":104},[2772],{"type":59,"value":351},{"type":53,"tag":81,"props":2774,"children":2775},{"style":498},[2776],{"type":59,"value":1837},{"type":53,"tag":81,"props":2778,"children":2779},{"style":110},[2780],{"type":59,"value":1744},{"type":53,"tag":81,"props":2782,"children":2783},{"style":104},[2784],{"type":59,"value":144},{"type":53,"tag":81,"props":2786,"children":2787},{"class":83,"line":192},[2788,2792,2796,2800],{"type":53,"tag":81,"props":2789,"children":2790},{"style":110},[2791],{"type":59,"value":914},{"type":53,"tag":81,"props":2793,"children":2794},{"style":104},[2795],{"type":59,"value":351},{"type":53,"tag":81,"props":2797,"children":2798},{"style":498},[2799],{"type":59,"value":923},{"type":53,"tag":81,"props":2801,"children":2802},{"style":110},[2803],{"type":59,"value":928},{"type":53,"tag":81,"props":2805,"children":2806},{"class":83,"line":225},[2807,2811,2815,2819],{"type":53,"tag":81,"props":2808,"children":2809},{"style":104},[2810],{"type":59,"value":937},{"type":53,"tag":81,"props":2812,"children":2813},{"style":131},[2814],{"type":59,"value":942},{"type":53,"tag":81,"props":2816,"children":2817},{"style":104},[2818],{"type":59,"value":139},{"type":53,"tag":81,"props":2820,"children":2821},{"style":104},[2822],{"type":59,"value":318},{"type":53,"tag":81,"props":2824,"children":2825},{"class":83,"line":267},[2826,2830,2834,2838,2842],{"type":53,"tag":81,"props":2827,"children":2828},{"style":110},[2829],{"type":59,"value":959},{"type":53,"tag":81,"props":2831,"children":2832},{"style":104},[2833],{"type":59,"value":351},{"type":53,"tag":81,"props":2835,"children":2836},{"style":498},[2837],{"type":59,"value":968},{"type":53,"tag":81,"props":2839,"children":2840},{"style":110},[2841],{"type":59,"value":581},{"type":53,"tag":81,"props":2843,"children":2844},{"style":104},[2845],{"type":59,"value":304},{"type":53,"tag":81,"props":2847,"children":2848},{"class":83,"line":277},[2849,2853,2857,2861],{"type":53,"tag":81,"props":2850,"children":2851},{"style":592},[2852],{"type":59,"value":985},{"type":53,"tag":81,"props":2854,"children":2855},{"style":104},[2856],{"type":59,"value":600},{"type":53,"tag":81,"props":2858,"children":2859},{"style":110},[2860],{"type":59,"value":855},{"type":53,"tag":81,"props":2862,"children":2863},{"style":104},[2864],{"type":59,"value":318},{"type":53,"tag":81,"props":2866,"children":2867},{"class":83,"line":307},[2868,2872],{"type":53,"tag":81,"props":2869,"children":2870},{"style":110},[2871],{"type":59,"value":1006},{"type":53,"tag":81,"props":2873,"children":2874},{"style":104},[2875],{"type":59,"value":318},{"type":53,"tag":81,"props":2877,"children":2878},{"class":83,"line":321},[2879,2883,2887],{"type":53,"tag":81,"props":2880,"children":2881},{"style":104},[2882],{"type":59,"value":1019},{"type":53,"tag":81,"props":2884,"children":2885},{"style":110},[2886],{"type":59,"value":810},{"type":53,"tag":81,"props":2888,"children":2889},{"style":104},[2890],{"type":59,"value":318},{"type":53,"tag":81,"props":2892,"children":2893},{"class":83,"line":334},[2894,2898],{"type":53,"tag":81,"props":2895,"children":2896},{"style":110},[2897],{"type":59,"value":810},{"type":53,"tag":81,"props":2899,"children":2900},{"style":104},[2901],{"type":59,"value":144},{"type":53,"tag":1454,"props":2903,"children":2904},{},[2905,2907,2913],{"type":59,"value":2906},"If ",{"type":53,"tag":77,"props":2908,"children":2910},{"className":2909},[],[2911],{"type":59,"value":2912},"express.json()",{"type":59,"value":2914}," is applied globally before the tRPC middleware, it consumes and parses the request body. tRPC then receives an already-parsed body, which breaks FormData and binary content type handling.",{"type":53,"tag":1454,"props":2916,"children":2917},{},[2918],{"type":59,"value":2919},"Source: www\u002Fdocs\u002Fserver\u002Fnon-json-content-types.md",{"type":53,"tag":62,"props":2921,"children":2923},{"id":2922},"see-also",[2924],{"type":59,"value":2925},"See Also",{"type":53,"tag":2927,"props":2928,"children":2929},"ul",{},[2930,2949,2959,2977],{"type":53,"tag":2931,"props":2932,"children":2933},"li",{},[2934,2939,2941,2947],{"type":53,"tag":2935,"props":2936,"children":2937},"strong",{},[2938],{"type":59,"value":45},{"type":59,"value":2940}," -- ",{"type":53,"tag":77,"props":2942,"children":2944},{"className":2943},[],[2945],{"type":59,"value":2946},"initTRPC.create()",{"type":59,"value":2948},", router\u002Fprocedure definition, context",{"type":53,"tag":2931,"props":2950,"children":2951},{},[2952,2957],{"type":53,"tag":2935,"props":2953,"children":2954},{},[2955],{"type":59,"value":2956},"adapter-standalone",{"type":59,"value":2958}," -- simpler adapter when Express middleware ecosystem is not needed",{"type":53,"tag":2931,"props":2960,"children":2961},{},[2962,2967,2969,2975],{"type":53,"tag":2935,"props":2963,"children":2964},{},[2965],{"type":59,"value":2966},"auth",{"type":59,"value":2968}," -- extracting JWT from ",{"type":53,"tag":77,"props":2970,"children":2972},{"className":2971},[],[2973],{"type":59,"value":2974},"req.headers.authorization",{"type":59,"value":2976}," in context",{"type":53,"tag":2931,"props":2978,"children":2979},{},[2980,2982],{"type":59,"value":2981},"Express docs: ",{"type":53,"tag":2983,"props":2984,"children":2988},"a",{"href":2985,"rel":2986},"https:\u002F\u002Fexpressjs.com\u002Fen\u002Fguide\u002Fusing-middleware.html",[2987],"nofollow",[2989],{"type":59,"value":2985},{"type":53,"tag":2991,"props":2992,"children":2993},"style",{},[2994],{"type":59,"value":2995},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2997,"total":862},[2998,3011,3018,3031,3051,3063,3076,3090,3102,3116,3126,3138],{"slug":2999,"name":2999,"fn":3000,"description":3001,"org":3002,"tags":3003,"stars":23,"repoUrl":24,"updatedAt":3010},"adapter-aws-lambda","deploy tRPC APIs on AWS Lambda","Deploy tRPC on AWS Lambda with awsLambdaRequestHandler() from @trpc\u002Fserver\u002Fadapters\u002Faws-lambda for API Gateway v1 (REST, APIGatewayProxyEvent) and v2 (HTTP, APIGatewayProxyEventV2), and Lambda Function URLs. Enable response streaming with awsLambdaStreamingRequestHandler() wrapped in awslambda.streamifyResponse(). CreateAWSLambdaContextOptions provides event and context for context creation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3004,3005,3008,3009],{"name":21,"slug":22,"type":15},{"name":3006,"slug":3007,"type":15},"AWS","aws",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-18T05:47:05.451869",{"slug":4,"name":4,"fn":5,"description":6,"org":3012,"tags":3013,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3014,3015,3016,3017],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":3019,"name":3019,"fn":3020,"description":3021,"org":3022,"tags":3023,"stars":23,"repoUrl":24,"updatedAt":3030},"adapter-fastify","mount tRPC as a Fastify plugin","Mount tRPC as a Fastify plugin with fastifyTRPCPlugin from @trpc\u002Fserver\u002Fadapters\u002Ffastify. Configure prefix, trpcOptions (router, createContext, onError). Enable WebSocket subscriptions with useWSS and @fastify\u002Fwebsocket. Set routerOptions.maxParamLength for batch requests. Requires Fastify v5+. FastifyTRPCPluginOptions for type-safe onError. CreateFastifyContextOptions provides req, res.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3024,3025,3026,3029],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":3027,"slug":3028,"type":15},"Fastify","fastify",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:53.746621",{"slug":3032,"name":3032,"fn":3033,"description":3034,"org":3035,"tags":3036,"stars":23,"repoUrl":24,"updatedAt":3050},"adapter-fetch","deploy tRPC on edge runtimes","Deploy tRPC on WinterCG-compliant edge runtimes with fetchRequestHandler() from @trpc\u002Fserver\u002Fadapters\u002Ffetch. Supports Cloudflare Workers, Deno Deploy, Vercel Edge Runtime, Astro, Remix, SolidStart. FetchCreateContextFnOptions provides req (Request) and resHeaders (Headers) for context creation. The endpoint option must match the URL path prefix where the handler is mounted.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3037,3040,3043,3046,3047],{"name":3038,"slug":3039,"type":15},"Cloudflare","cloudflare",{"name":3041,"slug":3042,"type":15},"Deployment","deployment",{"name":3044,"slug":3045,"type":15},"Edge","edge",{"name":9,"slug":8,"type":15},{"name":3048,"slug":3049,"type":15},"Vercel","vercel","2026-07-18T05:46:50.548228",{"slug":2956,"name":2956,"fn":3052,"description":3053,"org":3054,"tags":3055,"stars":23,"repoUrl":24,"updatedAt":3062},"mount tRPC on Node.js servers","Mount tRPC on Node.js built-in HTTP server with createHTTPServer() from @trpc\u002Fserver\u002Fadapters\u002Fstandalone, createHTTPHandler() for custom http.createServer, createHTTP2Handler() for HTTP\u002F2 with TLS. Configure basePath to slice URL prefix, CORS via the cors npm package passed as middleware option. CreateHTTPContextOptions provides req and res for context creation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3056,3057,3058,3061],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":3059,"slug":3060,"type":15},"Node.js","node-js",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:58.093869",{"slug":2966,"name":2966,"fn":3064,"description":3065,"org":3066,"tags":3067,"stars":23,"repoUrl":24,"updatedAt":3075},"implement authentication in tRPC applications","Implement JWT\u002Fcookie authentication and authorization in tRPC using createContext for user extraction, t.middleware with opts.next({ ctx }) for context narrowing to non-null user, protectedProcedure base pattern, client-side Authorization headers via httpBatchLink headers(), WebSocket connectionParams, and SSE auth via cookies or EventSource polyfill custom headers.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3068,3070,3073,3074],{"name":3069,"slug":2966,"type":15},"Auth",{"name":3071,"slug":3072,"type":15},"Authentication","authentication",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-18T05:46:45.347628",{"slug":3077,"name":3077,"fn":3078,"description":3079,"org":3080,"tags":3081,"stars":23,"repoUrl":24,"updatedAt":3089},"caching","configure HTTP caching for tRPC queries","Set HTTP cache headers on tRPC query responses via responseMeta callback for CDN and browser caching. Configure Cache-Control, s-maxage, stale-while-revalidate. Handle caching with batching and authenticated requests. Avoid caching mutations, errors, and authenticated responses.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3082,3083,3085,3088],{"name":13,"slug":14,"type":15},{"name":3084,"slug":3077,"type":15},"Caching",{"name":3086,"slug":3087,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:45.86443",{"slug":3091,"name":3091,"fn":3092,"description":3093,"org":3094,"tags":3095,"stars":23,"repoUrl":24,"updatedAt":3101},"client-setup","set up vanilla tRPC clients","Create a vanilla tRPC client with createTRPCClient\u003CAppRouter>(), configure link chain with httpBatchLink\u002FhttpLink, dynamic headers for auth, transformer on links (not client constructor). Infer types with inferRouterInputs and inferRouterOutputs. AbortController signal support. TRPCClientError typing.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3096,3097,3100],{"name":21,"slug":22,"type":15},{"name":3098,"slug":3099,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},"2026-07-18T05:48:11.437946",{"slug":3103,"name":3103,"fn":3104,"description":3105,"org":3106,"tags":3107,"stars":23,"repoUrl":24,"updatedAt":3115},"error-handling","implement typed error handling in tRPC","Throw typed errors with TRPCError and error codes (NOT_FOUND, UNAUTHORIZED, BAD_REQUEST, INTERNAL_SERVER_ERROR), configure errorFormatter for client-side Zod error display, handle errors globally with onError callback, map tRPC errors to HTTP status codes with getHTTPStatusCodeFromError().\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3108,3109,3112,3113],{"name":13,"slug":14,"type":15},{"name":3110,"slug":3111,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":3114,"slug":34,"type":15},"TypeScript","2026-07-18T05:46:52.798151",{"slug":3117,"name":3117,"fn":3118,"description":3119,"org":3120,"tags":3121,"stars":23,"repoUrl":24,"updatedAt":3125},"links","configure tRPC client link chains","Configure the tRPC client link chain: httpLink, httpBatchLink, httpBatchStreamLink, splitLink, loggerLink, wsLink, createWSClient, httpSubscriptionLink, unstable_localLink, retryLink. Choose the right terminating link. Route subscriptions via splitLink. Build custom links for SOA routing. Link options: url, headers, transformer, maxURLLength, maxItems, connectionParams, EventSource ponyfill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3122,3123,3124],{"name":21,"slug":22,"type":15},{"name":3098,"slug":3099,"type":15},{"name":9,"slug":8,"type":15},"2026-07-18T05:47:06.847309",{"slug":3127,"name":3127,"fn":3128,"description":3129,"org":3130,"tags":3131,"stars":23,"repoUrl":24,"updatedAt":3137},"middlewares","compose middleware for tRPC procedures","Create and compose tRPC middleware with t.procedure.use(), extend context via opts.next({ ctx }), build reusable middleware with .concat() and .unstable_pipe(), define base procedures like publicProcedure and authedProcedure. Access raw input with getRawInput(). Logging, timing, OTEL tracing patterns.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3132,3133,3136],{"name":13,"slug":14,"type":15},{"name":3134,"slug":3135,"type":15},"Middleware","middleware",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:49.132255",{"slug":3139,"name":3139,"fn":3140,"description":3141,"org":3142,"tags":3143,"stars":23,"repoUrl":24,"updatedAt":3151},"nextjs-app-router","implement tRPC in Next.js App Router","Full end-to-end tRPC setup for Next.js App Router. Covers route handler with fetchRequestHandler (GET + POST exports), TRPCProvider with QueryClientProvider, createTRPCOptionsProxy for RSC prefetching, HydrateClient\u002FHydrationBoundary for hydration, useSuspenseQuery for Suspense, and server-side callers.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3144,3145,3146,3149,3150],{"name":13,"slug":14,"type":15},{"name":3098,"slug":3099,"type":15},{"name":3147,"slug":3148,"type":15},"Next.js","next-js",{"name":9,"slug":8,"type":15},{"name":3114,"slug":34,"type":15},"2026-07-18T05:47:10.468453",{"items":3153,"total":862},[3154,3161,3168,3175,3183,3190,3197],{"slug":2999,"name":2999,"fn":3000,"description":3001,"org":3155,"tags":3156,"stars":23,"repoUrl":24,"updatedAt":3010},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3157,3158,3159,3160],{"name":21,"slug":22,"type":15},{"name":3006,"slug":3007,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":3162,"tags":3163,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3164,3165,3166,3167],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":3019,"name":3019,"fn":3020,"description":3021,"org":3169,"tags":3170,"stars":23,"repoUrl":24,"updatedAt":3030},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3171,3172,3173,3174],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":3027,"slug":3028,"type":15},{"name":9,"slug":8,"type":15},{"slug":3032,"name":3032,"fn":3033,"description":3034,"org":3176,"tags":3177,"stars":23,"repoUrl":24,"updatedAt":3050},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3178,3179,3180,3181,3182],{"name":3038,"slug":3039,"type":15},{"name":3041,"slug":3042,"type":15},{"name":3044,"slug":3045,"type":15},{"name":9,"slug":8,"type":15},{"name":3048,"slug":3049,"type":15},{"slug":2956,"name":2956,"fn":3052,"description":3053,"org":3184,"tags":3185,"stars":23,"repoUrl":24,"updatedAt":3062},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3186,3187,3188,3189],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":3059,"slug":3060,"type":15},{"name":9,"slug":8,"type":15},{"slug":2966,"name":2966,"fn":3064,"description":3065,"org":3191,"tags":3192,"stars":23,"repoUrl":24,"updatedAt":3075},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3193,3194,3195,3196],{"name":3069,"slug":2966,"type":15},{"name":3071,"slug":3072,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":3077,"name":3077,"fn":3078,"description":3079,"org":3198,"tags":3199,"stars":23,"repoUrl":24,"updatedAt":3089},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3200,3201,3202,3203],{"name":13,"slug":14,"type":15},{"name":3084,"slug":3077,"type":15},{"name":3086,"slug":3087,"type":15},{"name":9,"slug":8,"type":15}]