From ca0585eb23c62367c81f308b5d5efcd7bb2a571c Mon Sep 17 00:00:00 2001 From: Hasegawa-Yukihiro Date: Thu, 9 Apr 2026 21:49:50 +0900 Subject: [PATCH] fix: update ReadonlyArray type detection to use readonly modifier --- packages/openapi-typescript/src/lib/ts.ts | 2 +- packages/openapi-typescript/test/node-api.test.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/openapi-typescript/src/lib/ts.ts b/packages/openapi-typescript/src/lib/ts.ts index d1f41eb88..9ffce3b5e 100644 --- a/packages/openapi-typescript/src/lib/ts.ts +++ b/packages/openapi-typescript/src/lib/ts.ts @@ -608,7 +608,7 @@ export function tsReadonlyArray(type: ts.TypeNode, injectFooter?: ts.Node[]): ts !injectFooter.some((node) => ts.isTypeAliasDeclaration(node) && node?.name?.escapedText === "ReadonlyArray") ) { const helper = stringToAST( - "type ReadonlyArray = [Exclude] extends [unknown[]] ? Readonly> : Readonly[]>;", + "type ReadonlyArray = [Exclude] extends [readonly unknown[]] ? Readonly> : Readonly[]>;", )[0] as any; injectFooter.push(helper); } diff --git a/packages/openapi-typescript/test/node-api.test.ts b/packages/openapi-typescript/test/node-api.test.ts index b22f8ad18..d28b88a71 100644 --- a/packages/openapi-typescript/test/node-api.test.ts +++ b/packages/openapi-typescript/test/node-api.test.ts @@ -996,7 +996,7 @@ type FlattenedDeepRequired = { type ReadonlyArray = [ Exclude ] extends [ - unknown[] + readonly unknown[] ] ? Readonly> : Readonly[]>; export const pathsUrlGetParametersQueryStatusValues: ReadonlyArray["/url"]["get"]["parameters"]["query"]["status"]> = ["active", "inactive"]; export const statusValues: ReadonlyArray["schemas"]["Status"]> = ["active", "inactive"]; @@ -1051,7 +1051,7 @@ type FlattenedDeepRequired = { type ReadonlyArray = [ Exclude ] extends [ - unknown[] + readonly unknown[] ] ? Readonly> : Readonly[]>; export const complexEditKeyDtoStatesValues: ReadonlyArray["schemas"]["ComplexEditKeyDto"]["states"][string]> = ["TRANSLATED", "REVIEWED"]; export type operations = Record;`, @@ -1230,7 +1230,7 @@ type FlattenedDeepRequired = { type ReadonlyArray = [ Exclude ] extends [ - unknown[] + readonly unknown[] ] ? Readonly> : Readonly[]>; export const pathsAnalyticsDataGetResponses400ContentApplicationJsonAnyOf0MessageValues: ReadonlyArray["/analytics/data"]["get"]["responses"]["400"]["content"]["application/json"], { message: unknown; @@ -1462,7 +1462,7 @@ type FlattenedDeepRequired = { type ReadonlyArray = [ Exclude ] extends [ - unknown[] + readonly unknown[] ] ? Readonly> : Readonly[]>; export const pathsTestGetRequestBodyContentApplicationJsonStatusValues: ReadonlyArray["/test"]["get"]["requestBody"]["content"]["application/json"]["status"]> = ["active", "inactive"]; export type operations = Record;`, @@ -1557,7 +1557,7 @@ type FlattenedDeepRequired = { type ReadonlyArray = [ Exclude ] extends [ - unknown[] + readonly unknown[] ] ? Readonly> : Readonly[]>; export const resourceItemsOneOf0TypeValues: ReadonlyArray["schemas"]["Resource"]["items"], { type: unknown; @@ -1658,7 +1658,7 @@ type FlattenedDeepRequired = { type ReadonlyArray = [ Exclude ] extends [ - unknown[] + readonly unknown[] ] ? Readonly> : Readonly[]>; export const resourceItemsOneOf0NestedTypeValues: ReadonlyArray["schemas"]["Resource"]["items"], { nested: unknown; @@ -1774,7 +1774,7 @@ type FlattenedDeepRequired = { type ReadonlyArray = [ Exclude ] extends [ - unknown[] + readonly unknown[] ] ? Readonly> : Readonly[]>; export const resourceOuterOneOf0KindValues: ReadonlyArray["schemas"]["Resource"]["outer"], { kind: unknown;