-
-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Description
node: 16.14.0
typescript: 4.5.5
computed-types: 1.11.2
const schema = Schema.either(
{
foo: string.equals('X'),
bar: array.max(0),
baz: array.min(1),
},
{
foo: string.equals('Y'),
bar: array.min(1),
baz: array.max(0),
},
)
const obj = { foo: 'Y', bar: [], baz: [] }
const validator = schema.destruct()
const [err, validatedObj] = validator(obj)
The error message above is bar: Expect array to be minimum of 1 items (actual: 0). This makes sense for the value of foo === 'Y'.
Here's a curious observation... If I use const obj = { foo: 'X', bar: [], baz: [] }, then the error changes to foo: Expect value to equal "Y". Two notes:
- I think that the error is harder to understand since the error reports the path
footo be wrong, when arguably it's thebazarray that's not matching the schema. - The error differs from the case given in the initial snippet. However, the cases are symmetric about
XandY(apart from the order in theeitherdefinition), so one might expect the errors to be similar.
Obviously, the analogous error occurs if I swap the order of the schemas in the either definition.
This is really pedantic, I know. The library is great and hopefully this is just some useful feedback for thought.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels