Synopsis
revalidator-model is a simple model library based on revalidator.
Install
With NPM
npm install revalidator-model
From source
git clone https://github.com/pluma/revalidator-model.gitcd revalidator-modelnpm installmake test
Usage Example
var model = ;var List = ;var list = List;console; // ['foo', 'bar', 'qux']console; // 3console; // 'pungent'console; // {items: 'foo, bar, qux'}console; // {valid: true, errors: []}var list2 = items: 5 flavor: 'spicy';console; // 'spicy';console; // 5console; // falselist2; // fails with error: "Object 5 has no method split."
API
model(schema:Object):Model
Creates a Model
with the given revalidator schema
.
In addition to the properties recognized by revalidator
(properties
, patternProperties
, additionalProperties
), the schema
can have the following properties:
schema.proto:Object (optional)
The prototype
instances of the Model
should inherit from. Use this to specify methods you want to have access to on your model's instances.
schema.defaults:Object (optional)
Default property values to be copied to new instances of this
Model
. Arrays and objects will be deep-cloned.
schema.hydrate:Function (optional)
A transformation that will be applied to objects processed by your model's hydrate
method.
schema.dehydrate:Function (optional)
A transformation that will be applied to model instance when processed by its dehydrate
method.
new Model(data:Object):Instance
Creates a new instance with the given data
. Use of the new
keyword is optional.
Any properties of the given data
object that are not recognized will be ignored.
Model.hydrate(data:Object):Instance
See schema.hydrate
. Hydrates the object from the given data
and returns a new Model
instance.
Model.schema:Object
The schema
that was used to create this Model
.
Model.validate(data:Object):Object
Validates the given data
against the Model
's schema using revalidator
. The result object has two attributes:
valid:Boolean
Whether the data passed validation.
errors:Array
An array of error messages if the validation failed.
Model#validate():Object
Validates the instance. Shorthand for Model.validate(instance)
.
Model#dehydrate():Object
See schema.dehydrate
. Dehydrates the instance's data and returns it.
Unlicense
This is free and unencumbered public domain software. For more information, see http://unlicense.org/ or the accompanying UNLICENSE file.