-
-
Notifications
You must be signed in to change notification settings - Fork 53
Open
Labels
Description
This doc implies that in beforeDeserialize we can do callback(err) to stop the deserialization and get a throwed error, just like we do it in afterDeserialize.
However, the real behavior is different. It behaves like the field/prop doesn't exist and just skips it.
For example:
// example 1
const schema = createSimpleSchema({
a: primitive({ beforeDeserialize: (done) => done('err') }),
b: raw({ beforeDeserialize: (done) => done('err') }),
c: identifier({ beforeDeserialize: (done) => done('err') }),
d: date({ beforeDeserialize: (done) => done('err') }),
});
deserialize(schema, { a: 1, b: 1, c: 1, d: 1 });
// example 2
const schema = createSimpleSchema({
a: object(
createSimpleSchema({
b: primitive({ beforeDeserialize: (done) => done('err') }),
}),
),
});
deserialize(schema, { a: { b: 1 } });We would expect that it should throw an error err, but it doesn't.
I checked the code, here it just ignores any errors from beforeDeserialize, is there any reason or is it a bug?
Reactions are currently unavailable