From 70834f9f7034a1dcc16cd3d8d85712c105637739 Mon Sep 17 00:00:00 2001 From: Yusuke Wada Date: Sat, 29 Mar 2025 08:47:19 +0900 Subject: [PATCH] refactor(zod-openapi): fix type errors (#1078) * refactor(zod-openapi): fix type errors * fix types --- packages/zod-openapi/src/index.ts | 32 +++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/zod-openapi/src/index.ts b/packages/zod-openapi/src/index.ts index e9e90c1f..f42a2f68 100644 --- a/packages/zod-openapi/src/index.ts +++ b/packages/zod-openapi/src/index.ts @@ -198,22 +198,26 @@ type ExtractStatusCode = T extends keyof Status type DefinedStatusCodes = keyof R['responses'] & RouteConfigStatusCode export type RouteConfigToTypedResponse = | { - [Status in DefinedStatusCodes]: undefined extends R['responses'][Status]['content'] - ? TypedResponse<{}, ExtractStatusCode, string> - : ReturnJsonOrTextOrResponse< - keyof R['responses'][Status]['content'], - ExtractContent, - Status - > + [Status in DefinedStatusCodes]: R['responses'][Status] extends { content: infer Content } + ? undefined extends Content + ? never + : ReturnJsonOrTextOrResponse< + keyof R['responses'][Status]['content'], + ExtractContent, + Status + > + : TypedResponse<{}, ExtractStatusCode, string> }[DefinedStatusCodes] | ('default' extends keyof R['responses'] - ? undefined extends R['responses']['default']['content'] - ? TypedResponse<{}, Exclude>>, string> - : ReturnJsonOrTextOrResponse< - keyof R['responses']['default']['content'], - ExtractContent, - Exclude>> - > + ? R['responses']['default'] extends { content: infer Content } + ? undefined extends Content + ? never + : ReturnJsonOrTextOrResponse< + keyof Content, + ExtractContent, + Exclude>> + > + : TypedResponse<{}, Exclude>>, string> : never) export type Hook = (