From 239768b9f6ff9d035b62627f7244e769d0177c00 Mon Sep 17 00:00:00 2001 From: akineko Date: Sat, 18 May 2024 07:16:46 +0000 Subject: [PATCH 1/2] fix(zod-openapi): update RouteHandler type to support MaybePromise --- packages/zod-openapi/src/index.ts | 4 +- packages/zod-openapi/test/handler.test-d.ts | 41 ++++++++++++++++----- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/packages/zod-openapi/src/index.ts b/packages/zod-openapi/src/index.ts index 4372975c8..1659472b3 100644 --- a/packages/zod-openapi/src/index.ts +++ b/packages/zod-openapi/src/index.ts @@ -197,8 +197,8 @@ export type RouteHandler< } } } - ? RouteConfigToTypedResponse - : RouteConfigToTypedResponse | Response | Promise + ? MaybePromise> + : MaybePromise> | MaybePromise > export type RouteHook< diff --git a/packages/zod-openapi/test/handler.test-d.ts b/packages/zod-openapi/test/handler.test-d.ts index 2eaf54294..daf0e4c43 100644 --- a/packages/zod-openapi/test/handler.test-d.ts +++ b/packages/zod-openapi/test/handler.test-d.ts @@ -1,8 +1,7 @@ +import type { RouteHandler } from '../src' import { OpenAPIHono, createRoute, z } from '../src' -test('supports async handler', () => { - const hono = new OpenAPIHono() - +describe('supports async handler', () => { const route = createRoute({ method: 'get', path: '/users', @@ -20,15 +19,37 @@ test('supports async handler', () => { }, }) - hono.openapi(route, (c) => { - return c.json({ - id: '123', + test('argument of openapi method', () => { + const hono = new OpenAPIHono() + + hono.openapi(route, (c) => { + return c.json({ + id: '123', + }) }) - }) - hono.openapi(route, async (c) => { - return c.json({ - id: '123', + hono.openapi(route, async (c) => { + return c.json({ + id: '123', + }) }) }) + + test('RouteHandler type', () => { + const handler: RouteHandler = (c) => { + return c.json({ + id: '123', + }) + } + + const asyncHandler: RouteHandler = async (c) => { + return c.json({ + id: '123', + }) + } + + const hono = new OpenAPIHono() + hono.openapi(route, handler) + hono.openapi(route, asyncHandler) + }) }) From bcec81cf06854ca1bf53ed028233939cea112ff9 Mon Sep 17 00:00:00 2001 From: akineko Date: Sat, 18 May 2024 15:17:25 +0000 Subject: [PATCH 2/2] add .changeset/cuddly-pets-drum.md --- .changeset/cuddly-pets-drum.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/cuddly-pets-drum.md diff --git a/.changeset/cuddly-pets-drum.md b/.changeset/cuddly-pets-drum.md new file mode 100644 index 000000000..af868c437 --- /dev/null +++ b/.changeset/cuddly-pets-drum.md @@ -0,0 +1,5 @@ +--- +'@hono/zod-openapi': patch +--- + +fix(zod-openapi): update RouteHandler type to support MaybePromise