You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We would like to use Zod to define schemas for our Robots, Assembly and Template constructs, and more to come. The schemas can then be used by our customers and us to validate and type these types of data and later on by us to build editor completions and linting in our user dashboard.
In order to do that correctly, we need two features in Zod that are currently missing:
the usage of intersections in discriminated unions
the nesting of discriminated unions in discriminated unions
These four schemas are (should be) intersections of z.object and z.discriminatedUnion. They themselves are used in the robotSchema mentioned above, which is also a z.discriminatedUnion.
A simplified example of what we want to achieve type-wise is this:
The discriminators here are robot and ffmpeg_stack (and we might have other discriminators nested in individual Robots as well). The /video/encode robot is an intersection of an object and a discriminated union.
The text was updated successfully, but these errors were encountered:
We would like to use Zod to define schemas for our Robots, Assembly and Template constructs, and more to come. The schemas can then be used by our customers and us to validate and type these types of data and later on by us to build editor completions and linting in our user dashboard.
In order to do that correctly, we need two features in Zod that are currently missing:
Both have been reported/requested by other users in the Zod repo in colinhacks/zod#1075 and colinhacks/zod#1618
In this repo, the schema that is currently breaking in particular is the
robotSchema
, caused by the intersections here:types/src/robots/index.ts
Lines 180 to 183 in cecd12c
These four schemas are (should be) intersections of
z.object
andz.discriminatedUnion
. They themselves are used in therobotSchema
mentioned above, which is also az.discriminatedUnion
.A simplified example of what we want to achieve type-wise is this:
The discriminators here are
robot
andffmpeg_stack
(and we might have other discriminators nested in individual Robots as well). The/video/encode
robot is an intersection of an object and a discriminated union.The text was updated successfully, but these errors were encountered: