Skip to content
This repository was archived by the owner on Nov 19, 2024. It is now read-only.

Commit dc26bcd

Browse files
authored
FIX: Query support on Nuxt Adapter (#331)
1 parent 9012a43 commit dc26bcd

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/adapters/nuxt.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { TRPCError } from '@trpc/server';
22
import type { NodeIncomingMessage, NodeServerResponse } from 'h3';
3-
import { defineEventHandler } from 'h3';
3+
import { defineEventHandler, getQuery } from 'h3';
4+
import { IncomingMessage } from 'http';
45

56
import { OpenApiErrorResponse, OpenApiRouter } from '../types';
67
import { normalizePath } from '../utils/path';
@@ -14,6 +15,10 @@ export type CreateOpenApiNuxtHandlerOptions<TRouter extends OpenApiRouter> = Omi
1415
'maxBodySize'
1516
>;
1617

18+
type NuxtRequest = IncomingMessage & {
19+
query?: ReturnType<typeof getQuery>;
20+
};
21+
1722
export const createOpenApiNuxtHandler = <TRouter extends OpenApiRouter>(
1823
opts: CreateOpenApiNuxtHandlerOptions<TRouter>,
1924
) => {
@@ -57,6 +62,7 @@ export const createOpenApiNuxtHandler = <TRouter extends OpenApiRouter>(
5762
return;
5863
}
5964

65+
(event.node.req as NuxtRequest).query = getQuery(event);
6066
event.node.req.url = normalizePath(pathname);
6167
await openApiHttpHandler(event.node.req, event.node.res);
6268
});

test/adapters/nuxt.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const createOpenApiNuxtHandlerCaller = <TRouter extends OpenApiRouter>(
3636
return (req: {
3737
method: RequestMethod;
3838
params: Record<string, string>;
39-
query?: Record<string, string>;
39+
url?: string;
4040
body?: any;
4141
}) =>
4242
new Promise<{
@@ -59,7 +59,7 @@ const createOpenApiNuxtHandlerCaller = <TRouter extends OpenApiRouter>(
5959
const mockReq = httpMocks.createRequest({
6060
body: req.body,
6161
method: req.method,
62-
query: req.query,
62+
url: req.url,
6363
});
6464
const mockRes = httpMocks.createResponse({
6565
req: mockReq,
@@ -115,7 +115,7 @@ describe('nuxt adapter', () => {
115115
const res = await openApiNuxtHandlerCaller({
116116
method: 'GET',
117117
params: { trpc: 'say-hello' },
118-
query: { name: 'James' },
118+
url: '/api/say-hello?name=James',
119119
});
120120

121121
expect(res.statusCode).toBe(200);
@@ -145,7 +145,7 @@ describe('nuxt adapter', () => {
145145
const res = await openApiNuxtHandlerCaller({
146146
method: 'GET',
147147
params: { trpc: 'say/hello' },
148-
query: { name: 'James' },
148+
url: '/api/say/hello?name=James',
149149
});
150150

151151
expect(res.statusCode).toBe(200);

0 commit comments

Comments
 (0)