bactery
v1.1.2
Published
Check if objects are well constructed according to a map
Downloads
50
Maintainers
Readme
bactery
Check if objects are well constructed according to a map
Installation
npm install --save bactery
Usage
var bactery = require('bactery');
var requiredProperties = ['id', 'label', 'description'];
var myObjectToControl = {
id : 1,
label : 'bla'
};
var res = bactery.check(requiredProperties, myObjectToControl);
res.isConform => false
res.message => 'The following key(s) is/are missing : description'
res.errors => ['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 required
var requiredProperties = ['id', 'label', ['*description', 'short', 'detailed']];
// .description is facultative
var 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 required
var requiredProperties = ['id', ['*books', 'id', 'label']];
// .books is facultative
var 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'];