Immutable.js Record powered with validate.js
$ npm install --save validatable-record
ValidatableRecord returns Record
in Immutable.js for extending your own class. Usage is almost the same as Record
in Immutable.js, but it has the power of validate.js
. With ValidatableRecord, you can define models with built-in validation logic.
const ManRecord = ValidatableRecord({
name: null,
age: null
}, {
name: {
presence: true
},
age: {
presence: {
message: "is invalid"
}
}
});
class Man extends ManRecord {
...
}
const man = new Man({
name: "Justine";
age: 25
});
man.validate() // == true
// Of course you can use `Immutable.Record` methods
man.size // 2
man.get('name') // "Justine"
man.get('age') // 25
const agelessMan = new Man({
name: "Michael"
});
agelessMan.validate() // == false
agelessMan.getErrors() // == [ "Age is invalid" ]
// You can set your own error to model
agelessMan.setError("Unknown error")
agelessMan.getErrors() // = [ "Unknown error" ]
$ npm test
PRs accepted.
The gem is available as open source under the terms of the MIT License.