From 87f40d36f8c7282a60ef827d6762c8f33705f186 Mon Sep 17 00:00:00 2001 From: Aramis Sennyey Date: Fri, 3 Mar 2023 15:51:27 -0500 Subject: [PATCH] Fix immutability with responses. Signed-off-by: Aramis Sennyey --- plugins/openapi-router/src/types/immutable.ts | 6 ++++++ plugins/openapi-router/src/types/responses.ts | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/openapi-router/src/types/immutable.ts b/plugins/openapi-router/src/types/immutable.ts index 880a081ba0..5056512054 100644 --- a/plugins/openapi-router/src/types/immutable.ts +++ b/plugins/openapi-router/src/types/immutable.ts @@ -20,6 +20,7 @@ import type { RequestBodyObject, ParameterObject, SchemaObject, + ResponseObject, } from 'openapi3-ts'; /** @@ -71,6 +72,11 @@ export type ImmutableContentObject = ImmutableObject; */ export type ImmutableRequestBodyObject = ImmutableObject; +/** + * @public + */ +export type ImmutableResponseObject = ImmutableObject; + /** * @public */ diff --git a/plugins/openapi-router/src/types/responses.ts b/plugins/openapi-router/src/types/responses.ts index 50a8289dd6..c623b44333 100644 --- a/plugins/openapi-router/src/types/responses.ts +++ b/plugins/openapi-router/src/types/responses.ts @@ -18,7 +18,6 @@ * Pulled from https://github.com/varanauskas/oatx. */ -import type { ReferenceObject, ResponseObject } from 'openapi3-ts'; import type { ComponentRef, ComponentTypes, @@ -32,6 +31,7 @@ import type { ToTypeSafe, ValueOf, } from './common'; +import { ImmutableReferenceObject, ImmutableResponseObject } from './immutable'; /** * @public @@ -45,7 +45,7 @@ export type Response< Doc, Path, Method ->['responses'][StatusCode] extends ReferenceObject +>['responses'][StatusCode] extends ImmutableReferenceObject ? 'responses' extends ComponentTypes ? ComponentRef< Doc, @@ -76,7 +76,7 @@ export type Responses< */ export type ResponseSchema< Doc extends RequiredDoc, - Object extends ResponseObject, + Object extends ImmutableResponseObject, > = ObjectWithContentSchema; /** @@ -91,7 +91,7 @@ export type ResponseSchemas< Doc, DocPath, Method - >[StatusCode] extends ResponseObject + >[StatusCode] extends ImmutableResponseObject ? ResponseSchema< Doc, Responses, Method>[StatusCode]