warble
v1.0.0-alpha.6
Published
An universal javascript validation library.
Downloads
41
Maintainers
Readme
Warble
An universal javascript validation library.
See the documentation for more information.
Table of contents
Instalation
Install with NPM
npm install --save warble
Usage
Creating a model
Source
// Create an extension to verify if value is a Gmail address.
warble.subtypes.gmail = value => /\@gmail\.com$/i.test(value);
let
// Creating an object model:
model = warble.model({
name: {
required: true,
minlength: 3
},
age: {
required: true,
min: 18,
is: ['integer', 'positive']
},
email: {
is: ['email', 'gmail']
},
password: {
required: true
},
passwordConfirmation: {
required: true,
equal: 'password'
},
gender: {
options: ['male', 'female', 'other']
},
address: warble.model({
postalCode: {
required: true,
is: ['numeric', 'positive']
},
street: {
required: true
}
})
}),
// Data example:
data = {
name: 'Diego Lopes Lima',
age: 23,
email: '[email protected]',
password: 'a1b2c3',
passwordConfirmation: '1a2b3c',
gender: 'male',
address: {
postalCode: 54321,
street: 'Lorem ipsum dolor, 123'
}
};
// Testing data:
model.validate(data);
Output
{
"data": {
"name": {
"value": "Diego Lopes Lima",
"valid": true,
"status": {
"required": true,
"minlength": true
}
},
"age": {
"value": 23,
"valid": true,
"status": {
"required": true,
"min": true,
"isInteger": true,
"isPositive": true,
"is": true
}
},
"email": {
"value": "[email protected]",
"valid": true,
"status": {
"isEmail": true,
"isGmail": false,
"is": false
}
},
"password": {
"value": "a1b2c3",
"valid": true,
"status": {
"required": true
}
},
"passwordConfirmation": {
"value": "1a2b3c",
"valid": false,
"status": {
"required": true,
"equal": false
}
},
"gender": {
"value": "male",
"valid": true,
"status": {
"options": true
}
},
"address": {
"data": {
"postalCode": {
"value": 54321,
"valid": true,
"status": {
"required": true,
"isNumeric": true,
"isPositive": true,
"is": true
}
},
"street": {
"value": "Lorem ipsum dolor, 123",
"valid": true,
"status": {
"required": true
}
}
},
"valid": true
}
},
"valid": false
}
Validating a single data:
Source
warble.validate(data.name, {
required: true,
minlength: 3
});
Output
{
"value": "Diego Lopes Lima",
"valid": true,
"status": {
"required": true,
"minlength": true
}
}
Getting data type:
Example
warble.type(['lorem', 'ipsum']); // "array"
warble.type({ name: 'Diego Lopes Lima' }); // "object"
warble.type('Hello world!'); // "string"
Testing data:
Example
var value = '-1';
warble.is(value, 'number'); // false
warble.is(value, 'string'); // true
warble.is(value, ['numeric', 'negative']); // true
warble.is(value, ['numeric', 'positive']); // false
Changelog
See releases page.
Credits
Created and maintained by Diego Lopes Lima.
License
Code and documentation copyright © 2017 Warble.
All content of this repository is licensed under the MIT License.