Match Constraints
Check a JS object match specified constraints.
This is for simple object matching. If you require more advanced manipulation, other libraries will probably be better, see for instance validator.js
.
Install
$ npm install match-constraints
Usage
// You may use matchConstraints to throw errors on constraints failures, ot matchConstraintsBool to return false on failures.var matchConstraints = matchConstraints; /* Simple use case */var constraints = name: "hello"; ; // OK; // throws Error: "[name]: helo does not equals hello" /* $match : regexp checks */var constraints = name: $match: /h.+o$/ ; ; // OK; // throws Error "[name]: hellos does not match /h.+o$/" // Or shortcut notationvar constraints = name: /h.+o$/; // OK /* $contains: array checks */var constraints = values: $contains: 4 ; ; // OK; // OK; // throws Error "[values]: 1,2,3 does not contains 4" /* $containsTypeInsensitive: array checks with type tolerance */var constraints = values: $containsTypeInsensitive: 4 ; ; // OK; // OK; // OK; // OK; // throws Error "[values]: 1,2,3 does not contains 4" /* $missing: existence checks */var constraints = notDefined: $missing: true ; ; // OK; // throws Error "[notDefined]: 1,2,3,4 should not be defined" /* $empty: emptiness checks */var constraints = array: $empty: true ; ; // OK; // throws Error "[array]: 1,2,3,4 is not empty"; // throws Error "[array]: object does not define the key.", see below to allow for missing key /* $empty: allowing missing field*/var constraints = array: $empty: 'allowMissing' ; ; // OK; // OK; // throws Error "[array]: 1,2,3,4 is not empty" /* $notEmpty: non emptiness checks*/var constraints = array: $notEmpty: true ; ; // throws Error "[array]: is empty"; // OK /* Recursive matching */var constraints = values: foo: $contains: 4 ; ; // OK; // throws Error "[foo]: object does not define the key"