Skip to content

Conversation

@simonsolnes
Copy link

Changes

Fix bugs related to minItems and maxItems when using --array-length

Issue: #1781

Fix incorrectly generating tuples from 0 to (max-min) elements instead of min to max elements.

For example, minItems: 1, maxItems: 3 was producing [] | [T] | [T, T] instead of [T] | [T, T] | [T, T, T].

When an array's items was also an array type with minItems equal to maxItems,
the generated TypeScript was getting incorrectly double-nested
(e.g. string[][] instead of string[]).

How to Review

The tests shows the expected results

Checklist

  • Unit tests updated
  • [~] docs/ updated (if necessary)
  • [~] pnpm run update:examples run (only applicable for openapi-typescript)

… algorithm

The loop was incorrectly generating tuples from 0 to (max-min) elements
instead of min to max elements. For example, minItems: 1, maxItems: 3
was producing [] | [T] | [T, T] instead of [T] | [T, T] | [T, T, T].
… flag

When an array's items was also an array type with minItems equal to maxItems,
the generated TypeScript was getting incorrectly double-nested
(e.g. string[][] instead of string[]).

The issue was that the code checked if itemType was already an array/tuple
to skip wrapping, but this incorrectly skipped wrapping for standard arrays
when the nested transform happened to return an array type. Now we track
whether the current schema defines a tuple (via prefixItems) separately.
@changeset-bot
Copy link

changeset-bot bot commented Dec 10, 2025

⚠️ No Changeset found

Latest commit: 2c1266e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@netlify
Copy link

netlify bot commented Dec 10, 2025

👷 Deploy request for openapi-ts pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit 2c1266e

@simonsolnes simonsolnes marked this pull request as ready for review December 10, 2025 22:16
@simonsolnes simonsolnes requested a review from a team as a code owner December 10, 2025 22:16
@simonsolnes simonsolnes requested a review from gzm0 December 10, 2025 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant