Clearance 
Agnostic, asynchronous, and extensible JavaScript object validation.
Features
Clearance is a powerful, dependency-free validation library that:
- allows you to create and bind unlimited validation rules to an object.
- asynchronously validates your objects.
- works on both the client-side and server-side.
- gives you complete control over your objects during each state (valid/invalid/validated/unvalidated)
Getting Started
- Install with Bower -
bower install --save clearance
- Install with NPM -
npm install --save clearance
Usage
var schema = [
{ name: "username", rules: [ "required", "alpha" ] },
{ name: "password", rules: [ "required", "alphaNumeric" ] },
{ name: "email", rules: [ "required", "email" ] }
];
var clearance = new Clearance( schema );
clearance.validate({
data: [
{ name: "username", value: "jasonbellamy" },
{ name: "password", value: "unic0rn" },
{ name: "email", value: "j@sonbellamy.com" }
],
valid: function( objects ) {
},
invalid: function( objects ) {
},
complete: function( objects ) {
}
});
Examples
- Create a validation rule.
Clearance.setRule( "minimumLength", function( object, set, collection ) {
if ( object.value.length < 4 ) {
set.invalid( "This objects value must be at least 4 characters long." );
} else {
set.valid( "Congratulations! This objects value is longer than 4 characters!" );
}
});
var schema = [
{
name: "username",
rules: [ "minimumLength" ],
message: "default message",
valid: true
value: "default value"
}
];
- Validate objects against the schema.
clearance.validate({
data: [
{ name: "username", value: "jab" }
],
valid: function( objects ) {
},
invalid: function( objects ) {
},
complete: function( objects ) {
}
});
API
Clearance( schema )
| schema | object[] | <required> | schema containing an array of objects to register for validation. |
Clearance.setRule( name, function )
| name | string | <required> | the name of the rule. |
| function | function | <required> | the rules validation logic. |
Clearance.validate( options )
| options.data | object[] | <required> | array of objects to validate. |
| options.valid | function | <optional> | executed if all of the objects are valid. |
| options.invalid | function | <optional> | executed if there are any invalid objects. |
| options.complete | function | <optional> | executed after the objects have been validated. |
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.
License
Copyright (c) 2014 Jason Bellamy
Licensed under the MIT license.