fix: allow flags to parse arrays without variadic modifier #25
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.
Resolves #21
Describe your changes
Prior to this change, any flag type that extended from
readonly (infer A)[]
would be interpreted as avariadic
parameter. The variadic modifier allows the flag to be specified multiple times, each input parsed separately, and the results returned as an array. However, this did not allow for the use case that a single parsed value (i.e.--flag=a,b,c
) could produce an array as output (["a", "b", "c"]
).With this change, the
variadic
modifier can be dropped from flags with an array-based type and the parser will then expect that exact array-based type as output.Testing performed
Updated both formatting and scanner tests to confirm the new behavior.
Additional context
This also allows for the possibility of accepting specific array-based types as flags, such as subclasses of
TypedArray
(types that are not onlyArray
).