1.1.2 • Published 10 years ago
bactery v1.1.2
bactery
Check if objects are well constructed according to a map
Installation
npm install --save bacteryUsage
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'];