react-entity - Create entities base on React propTypes

This package let you create entities with schema validator like React PropTypes.
Installing
$ npm install react-entity
Using
Sample Entities
import { PropTypes } from 'react';
class MyEntity extends ReactEntity {
static SCHEMA = {
field: PropTypes.string,
otherField: {
type: PropTypes.number,
defaultValue: 10
}
}
}
class FatherEntity extends ReactEntity {
static SCHEMA = {
children: {
validator: PropTypes.arrayOf(PropTypes.instanceOf(MyEntity)),
type: MyEntity
}
}
}
Get default values
const niceInstance = new MyEntity();
console.log(niceInstance.fetch());
console.log(niceInstance.errors);
Validations
const buggedInstance = new MyEntity({ field: 10, otherField: 'value' });
console.log(buggedInstance.fetch());
console.log(buggedInstance.errors);
Validate on change value
const otherInstance = new MyEntity({ field: 'myString' });
console.log(otherInstance.errors);
console.log(otherInstance.valid);
otherInstance.field = 1;
console.log(otherInstance.errors);
console.log(otherInstance.valid);
Parse children to Entity
const fatherInstance = new FatherEntity({
children: [{
field: 'A',
otherField: 2
}, {
field: 'B',
otherField: 3
}]
})
console.log(fatherInstance.children[0]);
console.log(fatherInstance.children[1].fetch());
Clean unexpected values
const anotherInstance = new MyEntity({ field: 'myString', fake: 'fake' });
console.log(anotherInstance.fetch());
To understand the validators React PropTypes
Well known issues
- Create helpers for relationships validations(Like, mininum, maximum)
- Create identifier and equal comparison