typetree
Object validation using a definition laid out as a type-tree.
Install
npm install typetree
Usage
const validateObject =
Defining a typetree
Typetree definitions can be JavaScript built-in objects
BooleanNumberStringObject
or a literal values such as null, "string literal", 12 (number), undefined (indicates that the values can be ommited)
Here's a comprehesive sample (validation object for a company):
var validObject = id: Number name: String address: city: String // optional values country: 'EE' 'FI' 'SE' // an array of objects branches: name: String subId: Number // either true, false or can be ommited active: Boolean undefined // strict value type: 'SME'
Examples
Validating an object
// result: undefined // result: [// 'expected String at name',// 'expected String at email'// ]
Validating optional values
var validObject = patient: bloodType: 'A' 'B' 'AB' 'O' // result: undefined // result: [ 'expected any from [A, B, AB, O] at patient.bloodType' ]
Validating array contents
Provide an array with a single element in order to define an array validation object
var validObject = characters: filmId: Number name: String // result: [ 'expected String at characters[1].name' ]
In order to validate array contents with optionals, provide an array within an array
var validObject = characters: filmId: Number name: String deleted: true // result: undefined // result: [ 'expected any from [Object {filmId<Number>, name<String>}, Object {deleted: true}] at characters[1]' ]
Test
node test
Licence
MIT