1.1.2 • Published 8 years ago

bactery v1.1.2

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

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 be null
  • 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 be null
  • 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'];
1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago