README
smn-validate
Validate object properties in JavaScript.
(Works only with Node 7 or superior)
/* On your controller */
let params = {
nome: 'Natal 2017',
data: '2017-12-25'
};
try {
await scope.inserirFeriado(params);
} catch (error) {
// Error handling
}
/* On your scope */
let validate = require('smn-validate');
module.exports = {
inserirFeriado
};
async function inserirFeriado(params) {
let validation = {
nome: {
required: true,
string: true,
maxLength: 100
},
data: {
required: true,
date: true
}
};
await validate(params, validation);
}
Installation
$ npm install smn-validate
How it works
- Validates each property of an object with specific settings.
- It can be nested.
Parameters
You should put those properties on your validation settings:
required: true
When it is required. (but NULL still a valid value) e.g.:
let validation = {
id: {
required: true
}
}
number: {type} [String]
When it should be a number. Types: integer, smallint, bigint. e.g.:
let validation = {
idade: {
number: 'smallint'
}
}
string: true
When it should be a string. e.g.:
let validation = {
nome: {
string: true
}
}
maxLength: {max} [Integer]
When the length of it should be limited. e.g.:
let validation = {
email: {
string: true,
maxLength: 255
}
}
date: true
When it should be a date. e.g.:
let validation = {
dataExpiracao: {
date: true
}
}
boolean: true
When it should be boolean. e.g.:
let validation = {
ativo: {
boolean: true
}
}
validation: {nest array child} [Array]
When the property is an Array of objects that each item should be also validated. e.g.:
let validation = {
usuarios: {
validation: {
nome: {
required: true,
string: true
}
}
}
}
validation: {nest object child} [Object]
When the property is an Object that should also be validated. e.g.:
let validation = {
filho: {
validation: {
nome: {
required: true,
string: true
}
}
}
}
array: {validation setting} [Object]
When the property is an Array of values that each value should be also validated. e.g.:
// names = ['Leonardo', 'Donatello', 'Raphael', 'Michelangelo']
let validation = {
names: {
array: {
string: true
}
}
}