bactery
Check if objects are well constructed according to a map
Installation
npm install --save bactery
Usage
var bactery = ; var requiredProperties = 'id' 'label' 'description';var myObjectToControl = id : 1 label : 'bla'; var res = bactery; resisConform falseresmessage 'The following key(s) is/are missing : description'reserrors 'description'
API
bactery.check(map, object)
{Array} map
{Object/Array} object
: if the object is an array, the corresponding map is applicated over the collection of objects
Returns an object
:
{boolean} isConform
, the result of the control{String} message
, an error message{Array} errors
, an array of the missing keys
Advanced usages
This section describes how to write the map parameter.
Object in object
Pay attention :
- the
*
character represents the key to access the sub object - a simple
*
means that the property is required. It can not benull
- a double
**
means that the property is facultative.
var objectToControl = id : 1 label : 'Loar' description : short : 'bla' detailed : 'blabla' ; // All the properties are requiredvar requiredProperties = 'id' 'label' '*description' 'short' 'detailed';// .description is facultativevar requiredProperties = 'id' 'label' '**description' 'short' 'detailed';
Array in object
Pay attention :
- the
*
character represents the key to access the sub array. - a simple
*
means that the property is required. It can not benull
- a double
**
means that the property is facultative.
var objectToControl = id : 1 section : 'novel' books: id: 2513 label: 'Loar' id: 2514 label: 'Incognito' ; // All the properties are requiredvar requiredProperties = 'id' '*books' 'id' 'label';// .books is facultativevar requiredProperties = 'id' '**books' 'id' 'label';
Deep objects/arrays
var objectToControl = id: 1 section : 'novel' books: id: 2513 label: 'Loar' author: name: 'Loïc Henry' id: 2544 label: 'Incognito' author: name: 'David EAGLEMAN' ; var requiredProperties = 'id' '*books' 'id' 'label' '*author' 'id' 'name';
Array of objects
var objectsToControl = id : 1 label : 'bla' id : 2 label : 'blo' ; var requiredProperties = 'id' 'label';