Add reasonable max for tuple types (fix #438) #451
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This diff adds a reasonably large maximum size for how many members we emit for bounded-size arrays.
Before, we'd emit whatever number was specified by
maxItems
unless a user opted out of this with theignoreMinAndMaxItems
option.Now, we default to emitting a union of TypeScript tuples for arrays where
maxItems - minItems > N
, whereN
defaults to20
and can be overridden with themaxItems
option. We also emit JSDoc blocks forminItems
andmaxItems
, to more explicitly annotate the intent behind the JSON-Schema.Alternative approaches considered:
ignoreMinAndMaxItems
if we detect too large a number of cycles when emitting tuple members. This is more explicit, but just looking at number of cycles isn't a reliable indicator of OOMs.