Yup provides a flexible object schema validation DSL. For instance, if you want to enforce that a certain value is a number, you can define something like this:
const numSchema = yup.number();
You can then validate anything against that schema.
const validator = (val) => {
numSchema.validate(val)
.then(result => {
console.log(result); // it is the value of `val`
return true;
})
.catch(error => {
console.log(error.errors); // array of validation error messages
return false;
});
};
The validation is async, so if it succeeds the then
block is hit. If the
validation fails, it will fall through to the catch
.
validator(5) // => true
validator('what') // => false