VeryModel (GitHub: fritzy/VeryModel, License: MIT) is a system for validation, creation, and editing of models. VeryModel is not tied to a framework, and it implements a full purpose Model system.
npm install verymodel
Here’s an example of a model definition:
// Create a User Factory
var User = new VeryModel({
id: {primary: true, type: VeryType().isAlphanumeric(), default: 1},
username: {required: true, type: VeryType().isAlphanumeric().len(4, 25), default: ''},
password: {required: false, type: VeryType().len(6).custom(goodPassword)}, default: ''},
passhash: {private: true},
});
Model defintions are recursive Javascript object. At each layer, you can have the following fields:
required
(boolean): Error on validation if this field isn’t set.type
(VeryType): VeryType chain to validate field against if set.default
(any): Default value set automatically.model
(definition object or VeryModel): set this field as another model.collection
(definition object or VeryModel): set this field as a collection of a model.derive
function
): Derive the value of this field with this function whenever field is accessed{derive: function(model) {return model.first + ' ' + model.last}
depends
({some_other_field: VeryType or true}, …): Require other fields when this field is set, optionally run VeryType chain check on other field.primary
(boolean): Set this on one of your fiels for easy saving and loading.private
(boolean):toObject()
will not include this field in expect unless the argumnet usePrivate is true
There are plenty of examples and information on the . Check it out!