From 0a5f89e25f3a062dbf94b08bb02b507dfb4b213b Mon Sep 17 00:00:00 2001 From: panwauu Date: Thu, 12 Mar 2026 11:47:40 +0100 Subject: [PATCH 1/2] fix(openapi-typescript-helpers): preserve tuple types in Readable/Writable --- packages/openapi-typescript-helpers/src/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/openapi-typescript-helpers/src/index.ts b/packages/openapi-typescript-helpers/src/index.ts index 391e0a694..fb04180f6 100644 --- a/packages/openapi-typescript-helpers/src/index.ts +++ b/packages/openapi-typescript-helpers/src/index.ts @@ -221,8 +221,8 @@ export type Readable = ? never : T extends $Read ? Readable - : T extends (infer E)[] - ? Readable[] + : T extends readonly any[] + ? { [K in keyof T]: Readable } : T extends object ? { [K in keyof T as NonNullable extends $Write ? never : K]: Readable } : T; @@ -238,8 +238,8 @@ export type Writable = ? never : T extends $Write ? Writable - : T extends (infer E)[] - ? Writable[] + : T extends readonly any[] + ? { [K in keyof T]: Writable } : T extends object ? { [K in keyof T as NonNullable extends $Read ? never : K]: Writable } & { [K in keyof T as NonNullable extends $Read ? K : never]?: never; From ad696ac7c04669d81f4bc0927008c9197e9e9cd6 Mon Sep 17 00:00:00 2001 From: panwauu Date: Thu, 12 Mar 2026 11:56:46 +0100 Subject: [PATCH 2/2] Add changeset --- .changeset/wide-pianos-exist.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wide-pianos-exist.md diff --git a/.changeset/wide-pianos-exist.md b/.changeset/wide-pianos-exist.md new file mode 100644 index 000000000..5070a4d14 --- /dev/null +++ b/.changeset/wide-pianos-exist.md @@ -0,0 +1,5 @@ +--- +"openapi-typescript-helpers": patch +--- + +Preserve tuple types in Readable and Writable by using mapped type instead of (infer E)[] pattern