composite-validation
Version:
Composite validation API for JS data models
53 lines (46 loc) • 1.79 kB
Markdown
Composite validation API for JS data models. Based on [this](https://github.com/uNmAnNeR/travajs "travajs") project idea.
This library
[](https://travis-ci.com/apashkov-ext/composite-validation)
[](https://coveralls.io/github/apashkov-ext/composite-validation?branch=master)
[](https://www.npmjs.com/package/composite-validation)
[](https://packagephobia.now.sh/result?p=composite-validation)
[](https://opensource.org/licenses/MIT)
`npm install composite-validation`
For some data model...
```javascript
const dataModel = {
name: 'Leonardo',
age: 45
};
```
...describe validation map that folows the structure of the original object.
```javascript
import { ValidationMap, Conditions, required, equals } from 'composite-validation';
const map = ValidationMap({
name: Conditions(v => required(v)),
age: Conditions([
v => required(v),
v => equals(v, 21)
])
});
```
Call function.
```javascript
const result = map(dataModel);
```
Function applies validation map to data model, check all validity conditions and returns object with validity states for each field.
```json
{
"name": {
"value": "Leonardo",
"isRequired": true
},
"age": {
"error": "Value should be defined",
"isRequired": true
}
}
```