Remove createParams cascade from .array() #3530
Open
+18
−2
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.
See this issue for more context.
Basically, the description for a type was getting unexpectedly duplicated when using
.array()
. For example:The issue was not present for
z.array()
This unexpected behavior was introduced in a fix trying to ensure that something like
z.string().describe("a description").optional()
persisted the description after being wrapped byZodOptional
.While this behavior makes sense for types like
ZodOptional
orZodNullable
,ZodArray
is a completely separate type.Other types that do this cascading
createParams
:optional
nullable
promise
or
and
transform
default
brand
catch
I think the logic makes sense for all of these (maybe
or
andand
are also exceptions? not sure)Added a test for this as well :)