Comparing version 0.2.0 to 0.3.0
@@ -116,3 +116,3 @@ const _ = require('lodash') | ||
return Promise.reject(err) | ||
} else if (_.isArray(err) || _.isString(err)) { | ||
} else if ((_.isArray(err) || _.isString(err)) && !_.isEmpty(err)) { | ||
return Promise.reject(err) | ||
@@ -119,0 +119,0 @@ } else { |
{ | ||
"name": "rattata", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "Simple data validation for JavaScript", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -1,3 +0,56 @@ | ||
# Rattata | ||
# Rattata (WIP) | ||
> Simple data validation for JavaScript | ||
### Example | ||
```JavaScript | ||
const rules = { | ||
firstName: r.withMessage(r.string, 'should be a string'), | ||
middleName: r.opt(r.string), | ||
lastName: r.string, | ||
age: r.xor( | ||
r.undefined, | ||
r.and( | ||
r.withMessage(r.integer, 'should be an integer'), | ||
r.withMessage(r.range(10, 99), 'should be between 10 and 99'), | ||
), | ||
), | ||
pokedex: r.validate({ | ||
serialNumber: r.pattern(/\d\d\d\d-\d\d\d\d/), | ||
pokemonIds: r.array( | ||
withMessage( | ||
r.and( | ||
r.integer, | ||
r.range(1, 151) | ||
), 'should be an integer between 1 and 151') | ||
), | ||
}), | ||
} | ||
const props = { | ||
firstName: 42, | ||
// middleName is optional | ||
lastName: [], | ||
age: '100', | ||
pokedex: { | ||
serialNumber: '1234-5678', | ||
pokemonIds: [23, 1, 56, '11'], | ||
}, | ||
} | ||
r | ||
.validate(rules, props) | ||
.then(() => { | ||
// validation successful | ||
}) | ||
.catch(err => { | ||
// err { | ||
// firstName: ['should be a string'], | ||
// lastName: [], | ||
// age: ['should be an integer', 'should be between 10 and 99'], | ||
// pokedex: { | ||
// 'pokemonIds[i]': ['should be an integer between 1 and 151'], | ||
// } | ||
// } | ||
}) | ||
``` |
8402
57