From 6c446cc7284b211649b9695bd38bfce54a0f9bab Mon Sep 17 00:00:00 2001 From: unnoq Date: Tue, 16 Sep 2025 11:02:26 +0700 Subject: [PATCH 1/2] docs: prefer fetch adapter for nuxtjs --- apps/content/docs/adapters/nuxt.md | 24 ++++++++++----------- playgrounds/nuxt/server/routes/api/[...].ts | 10 +++++---- playgrounds/nuxt/server/routes/rpc/[...].ts | 10 +++++---- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/apps/content/docs/adapters/nuxt.md b/apps/content/docs/adapters/nuxt.md index a3b3d3f0b..19113acda 100644 --- a/apps/content/docs/adapters/nuxt.md +++ b/apps/content/docs/adapters/nuxt.md @@ -5,7 +5,7 @@ description: Use oRPC inside an Nuxt.js project # Nuxt.js Adapter -[Nuxt.js](https://nuxtjs.org/) is a popular Vue.js framework for building server-side applications. It built on top of [Nitro](https://nitro.build/) server a lightweight, high-performance Node.js runtime. For more details, see the [HTTP Adapter](/docs/adapters/http) guide. +[Nuxt.js](https://nuxtjs.org/) is a popular Vue.js framework for building server-side applications. For more details, see the [HTTP Adapter](/docs/adapters/http) guide. ## Server @@ -14,22 +14,20 @@ You set up an oRPC server inside Nuxt using its [Server Routes](https://nuxt.com ::: code-group ```ts [server/routes/rpc/[...].ts] -import { RPCHandler } from '@orpc/server/node' +import { RPCHandler } from '@orpc/server/fetch' const handler = new RPCHandler(router) export default defineEventHandler(async (event) => { - const { matched } = await handler.handle( - event.node.req, - event.node.res, - { - prefix: '/rpc', - context: {}, // Provide initial context if needed - } - ) - - if (matched) { - return + const request = toWebRequest(event) + + const { response } = await handler.handle(request, { + prefix: '/rpc', + context: {}, // Provide initial context if needed + }) + + if (response) { + return response } setResponseStatus(event, 404, 'Not Found') diff --git a/playgrounds/nuxt/server/routes/api/[...].ts b/playgrounds/nuxt/server/routes/api/[...].ts index 9a7b235fa..04d0ec58d 100644 --- a/playgrounds/nuxt/server/routes/api/[...].ts +++ b/playgrounds/nuxt/server/routes/api/[...].ts @@ -1,4 +1,4 @@ -import { OpenAPIHandler } from '@orpc/openapi/node' +import { OpenAPIHandler } from '@orpc/openapi/fetch' import { onError } from '@orpc/server' import { ZodToJsonSchemaConverter } from '@orpc/zod/zod4' import { experimental_SmartCoercionPlugin as SmartCoercionPlugin } from '@orpc/json-schema' @@ -63,18 +63,20 @@ const openAPIHandler = new OpenAPIHandler(router, { }) export default defineEventHandler(async (event) => { + const request = toWebRequest(event) + const authorization = getHeader(event, 'authorization') const context = authorization ? { user: { id: 'test', name: 'John Doe', email: 'john@doe.com' } } : {} - const { matched } = await openAPIHandler.handle(event.node.req, event.node.res, { + const { response } = await openAPIHandler.handle(request, { prefix: '/api', context, }) - if (matched) { - return + if (response) { + return response } setResponseStatus(event, 404, 'Not Found') diff --git a/playgrounds/nuxt/server/routes/rpc/[...].ts b/playgrounds/nuxt/server/routes/rpc/[...].ts index 542f0733c..daf0d1a20 100644 --- a/playgrounds/nuxt/server/routes/rpc/[...].ts +++ b/playgrounds/nuxt/server/routes/rpc/[...].ts @@ -1,5 +1,5 @@ import { onError } from '@orpc/server' -import { RPCHandler } from '@orpc/server/node' +import { RPCHandler } from '@orpc/server/fetch' import { router } from '~/server/routers' const rpcHandler = new RPCHandler(router, { @@ -11,15 +11,17 @@ const rpcHandler = new RPCHandler(router, { }) export default defineEventHandler(async (event) => { + const request = toWebRequest(event) + const context = { user: { id: 'test', name: 'John Doe', email: 'john@doe.com' } } - const { matched } = await rpcHandler.handle(event.node.req, event.node.res, { + const { response } = await rpcHandler.handle(request, { prefix: '/rpc', context, }) - if (matched) { - return + if (response) { + return response } setResponseStatus(event, 404, 'Not Found') From b9574b68490c295841145e176b54e3fa4b04e184 Mon Sep 17 00:00:00 2001 From: unnoq Date: Tue, 16 Sep 2025 11:15:49 +0700 Subject: [PATCH 2/2] fix link --- apps/content/docs/adapters/nuxt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/content/docs/adapters/nuxt.md b/apps/content/docs/adapters/nuxt.md index 19113acda..84ceb7a2a 100644 --- a/apps/content/docs/adapters/nuxt.md +++ b/apps/content/docs/adapters/nuxt.md @@ -5,7 +5,7 @@ description: Use oRPC inside an Nuxt.js project # Nuxt.js Adapter -[Nuxt.js](https://nuxtjs.org/) is a popular Vue.js framework for building server-side applications. For more details, see the [HTTP Adapter](/docs/adapters/http) guide. +[Nuxt.js](https://nuxt.com/) is a popular Vue.js framework for building server-side applications. For more details, see the [HTTP Adapter](/docs/adapters/http) guide. ## Server