Immutable.js Record powered with validate.js
$ npm install --save validatable-recordValidatableRecord 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 testPRs accepted.
The gem is available as open source under the terms of the MIT License.