From 0bcf0837fc40ee1c716c408e47d03aa57d8a0552 Mon Sep 17 00:00:00 2001 From: Patrick McElhaney Date: Thu, 30 May 2024 19:29:08 -0400 Subject: [PATCH] okay, I think this will fix #918 for realz --- .changeset/polite-crabs-nail.md | 5 +++++ src/server/types.d.ts | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 .changeset/polite-crabs-nail.md diff --git a/.changeset/polite-crabs-nail.md b/.changeset/polite-crabs-nail.md new file mode 100644 index 00000000..e6025fb1 --- /dev/null +++ b/.changeset/polite-crabs-nail.md @@ -0,0 +1,5 @@ +--- +"counterfact": minor +--- + +fix argument type for .json() (third time's a charm?) diff --git a/src/server/types.d.ts b/src/server/types.d.ts index 14166cb8..416f6902 100644 --- a/src/server/types.d.ts +++ b/src/server/types.d.ts @@ -46,15 +46,17 @@ type IfHasKey = Keys extends [ : No : No; +type SchemasOf = { + [K in keyof T]: T[K]["schema"]; +}[keyof T]; + type MaybeShortcut< ContentTypes extends MediaType[], Response extends OpenApiResponse, > = IfHasKey< Response["content"], ContentTypes, - ( - body: Response["content"][ArrayToUnion]["schema"], - ) => GenericResponseBuilder<{ + (body: SchemasOf) => GenericResponseBuilder<{ content: NeverIfEmpty>; headers: Response["headers"]; requiredHeaders: Response["requiredHeaders"]; @@ -114,7 +116,16 @@ type GenericResponseBuilderInner< ? never : HeaderFunction; html: MaybeShortcut<["text/html"], Response>; - json: MaybeShortcut<["application/json", "text/json", "text/x-json", "application/xml", "text/xml"], Response>; + json: MaybeShortcut< + [ + "application/json", + "text/json", + "text/x-json", + "application/xml", + "text/xml", + ], + Response + >; match: [keyof Response["content"]] extends [never] ? never : MatchFunction;