The composition ability for combining validators together on props and objects opens up complex possibilities. Another great example is nested objects.
Copy import validate , {
objectProps , required , length , range , every
} from 'strickland' ;
const personValidator = objectProps ({
name : every ([ required () , length ( 5 , 40 )]) ,
address : objectProps ({
street : every ([ required () , objectProps ({
number : every ([ required () , range ( 1 , 99999 )]) ,
name : every ([ required () , length ( 2 , 40 )])
})]) ,
city : required () ,
state : every ([ required () , length ( 2 , 2 )])
})
});
const person = {
name : 'Marty McFly' ,
address : {
street : {
number : 9303 ,
name : 'Lyon Drive'
} ,
city : 'Hill Valley' ,
state : 'CA'
}
};
const result = validate (personValidator , person);
Objects can be nested without any limits on depth. And any type of validator can be used anywhere in the tree.