Observed since 20 Oct, 19:19 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
JavaScript simple data validator
v3.1.1
npm install --save 2valid
Check for integer
var v = require('2valid');
// valid? true/false
console.log( v.valid('integer', 111) ); // true
console.log( v.valid('integer', 'aaa') ); // false
// check, what was wrong
console.log( v.check('integer', 111) ); // null
console.log( v.check('integer', 'aaa') ); // { notMatched: 'integer' }
Check for password. Minimum 4 chars, at least one caps and one small letter, digit and special
var v = require('2valid');
console.log( v.valid('password', '!A1e') ); // true
console.log( v.valid('password', 'As1eRR') ); // false
console.log( v.check('password', 'As1eRR') ); // { notMatched: 'password' }
Get examples
var v = require('2valid');
var example = v.getExample('email');
console.log( example ); // news@site.com
console.log( v.valid('email', example) ); // true (email is valid)
console.log( v.check('email', example) ); // null (check why email is not valid)
| type | description |
|---|---|
| string | string |
| integer | integer number |
| float | float number |
| boolean | boolean |
| array | array type |
| date | date methods |
| simple e-mail | |
| password | password, minimum 4 chars, at least one caps and one small letter, digit and special |
| md5 | MD5 string |
| uuid | UUID string |
| any | any of elements of array |
If check passed, then result is null.
Otherwise check result is object with these keys:
notMatched [object] - which key does not match which typenotRequired [array of string] - list of keys are not in modelnotFound [array of string] - which keys in model are not found in checked objecttext [string] - simple description of all errorsFor example:
{ notMatched: { '.id': 'integer' },
text: 'Field .id not matched with type integer. Field .secondName not required. Field .name not found',
notRequired: [ '.secondName' ],
notFound: [ '.name' ] }
Check if integer
var v = require('2valid');
v.check( 'integer', 111, function(err) {
console.log(err); //null
});
v.check( 'integer', '61cecfb4-da43-4b65-aaa0-f1c3be81ec53', function(err) {
console.log(err); // { notMatched: 'integer' }
});
Check if valid to simple object with integer id and string name
var vm = require('./index');
var userModel = {
id: {type: 'integer'},
name: {type: 'string', required: true}
};
vm.check( userModel,
{ id: 123, secondName: 'Max Validator' },
function(err) {
console.log(err); // null
}
);
Validation failed with all types of errors
var vm = require('./index');
var userModel = {
id: {type: 'integer'},
name: {type: 'string', required: true}
};
vm.check( userModel,
{ id: 'Max', secondName: 'Validator' },
function(err) {
console.log(err);
}
);
Result
{ notMatched: { '.id': 'integer' },
text: 'Field .id not matched with type integer. Field .secondName not required. Field .name not found',
notRequired: [ '.secondName' ],
notFound: [ '.name' ] }
Rregister user model to check validation by model name
var v = require('2valid');
// register model 'user' to check integer 'id' and string 'name'
v.registerModel('user', {
id: {type: 'integer'},
name: {type: 'string'}
});
// object to check
var userObject = {id: 123, name: 'Alex Validates'}
// check if object is valid sync
var valid = v.check('user', userObject);
console.log(valid.text || 'object is valid');
// check if object is valid with callback
v.check('user', userObject, function(err) {
console.log(err || 'object is valid');
});
Result
object is valid
Validate name.first and name.second
var v = require('2valid');
// property 'name' of 'user' model must have 'first' (required) and 'last' keys.
v.registerModel('user', {
name: {
first : { type: 'string', required: true },
last : { type: 'string' },
}
});
// {}
console.log(v.check('user', {name: {first: 'Alex', last: 'Validator'}}));
console.log(v.check('user', {name: {first: 'Marry'}}));
// { notFound: [ '.id', '.name.first' ],
// text: 'Field .id not found in registered model. Field .name.first not found in registered model' }
console.log(v.check('user', {id: 123}));
// { notFound: [ '.name.first' ], text: 'Field .name.first not found in registered model' }
console.log(v.check('user', {name: {last: 'Alex'}}));
Only 'cyan', 'magenta', 'yellow' or 'key' can passed in cmyk model to validate
var v = require('2valid');
// property 'name' of 'cmyk' model must be 'cyan', 'magenta', 'yellow' or 'key' value
v.registerModel('cmyk', {name: { type: 'string', match : /^cyan|magenta|yellow|key$/i }});
// {}
console.log(v.check('cmyk', {name: 'Magenta'}));
// { notMatched: { '.name': 'string' }, text: 'Field .name not matched with type string' }
console.log(v.check('cmyk', {name: 'black'}));
console.log(v.check('cmyk', {name: 123}));
Only 'cyan', 'magenta', 'yellow' or 'key' can passed in cmyk model to validate
var v = require('2valid');
console.log(v.check('any', 'yellow', {one: ['cyan', 'magenta', 'yellow', 'key']})); //passed
console.log(v.check('any', 123, {one: ['cyan', 'magenta', 'yellow', 'key']})); //{ notMatched: 'any' }
Check if field is required
var v = require('2valid');
// property “id” required and must be uuid
v.registerModel('user', {id: { type: 'uuid', required: true }});
// {}
console.log(v.check('user', {id: '61cecfb4-da43-4b65-aaa0-f1c3be81ec53'}));
// { notMatched: { '.id': 'uuid' }, text: 'Field .id not matched with type uuid' }
console.log(v.check('user', {id: 123}));
// { notFound: [ '.name', '.id' ],
// text: 'Field .name not found in registered model. Field .id not found in registered model' }
console.log(v.check('user', {name: 'Alex'}));
Checking for fixed length of the string
var v = require('2valid');
// property “name” must be exacly 2 chars length
v.registerModel('ISO 3166-2', {name: { type: 'string', min: 2, max: 2 }});
// {}
console.log(v.check('ISO 3166-2', {name: 'US'}));
// { notMatched: { '.name': 'string' }, text: 'Field .name not matched with type string' }
console.log(v.check('ISO 3166-2', {name: 123}));
console.log(v.check('ISO 3166-2', {name: 'USA'}));
console.log(v.check('ISO 3166-2', {name: 'U'}));
You can add new type to validate in to types.js. 'check' method is required to check new inserted type.
For example, new type 'password'. It type must contains minimum 4 chars: at least one lower and one upper case, digit and special chars. Add code below to types.js in list property:
password : {
min : 4, // string.min Minimum length of the string
max : Infinity, // string.max Maximum length of the string
check : function( password ){ // check password type and size
if ( ( typeof string === 'string' || string instanceof String )
&& string.length >= this.min
&& string.length <= this.max
&& string.match(/((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).+)/)
)
return true
else
return false;
}
}
npm test
For register model you need to use registerModel method.
v.registerModel( 'user', {
id: { type: 'uuid', required: true }, // property “id” must be uuid
name: { type: 'string', min: 4, max: 128, required: true }, // property “name” must be String and contain 4-128
password: { type: 'password', max: 128, required: true }, // property “password” must be String and contain 4-128 chars:
});
v.check( 'user', { id : '61cecfb4-da33-4b15-aa10-f1c6be81ec53', name : 'Validator', password : 'A1z!' })
myLibrary.registerModel( 'Name', { id: { type: 'uuid', required: true } } );
myLibrary.registerModel( 'modelName', NaN );
myLibrary.registerModel( 'modelName', { id: { type: 'uuid', min: 1, max: 5, required: true } } );
myLibrary.registerModel( 'modelName', { id: { type: 'name' } } );
myLibrary.consoleTrueOrError ( myLibrary.check( 'modelName', { name : 'Alex Validates' }) );
myLibrary.registerModel( 'name_exception', { date: { parameter: 'date' } } );
myLibrary.registerModel( 'name_exception', { id: { type: 'guid' } } );
Dimitry, 2@ivanoff.org.ua
curl -A cv ivanoff.org.ua
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 3.1.1Registry latest | 31 Oct 2017 | 4 | |
| 2.5.4 | 12 Aug 2017 | 4 | |
| 2.5.3 | 28 Jun 2017 | 4 | |
| 2.5.2 | 28 Jun 2017 | 4 | |
| 2.5.1 | 24 Jun 2017 | 4 | |
| 2.4.1 | 4 Apr 2017 | 4 | |
| 2.3.2 | 6 Mar 2017 | 4 | |
| 2.3.1 | 22 Feb 2017 | 4 | |
| 2.2.4 | 13 Feb 2017 | 4 | |
| 2.2.3 | 30 Jan 2017 | 4 | |
| 2.2.2 | 26 Jan 2017 | 4 | |
| 2.2.1 | 25 Jan 2017 | 2 | |
| 2.1.4 | 24 Oct 2016 | 2 | |
| 2.1.3 | 22 Sept 2016 | 2 | |
| 2.1.2 | 25 Aug 2016 | 2 | |
| 2.1.1 | 25 Aug 2016 | 2 | |
| 2.0.2 | 24 Aug 2016 | 2 | |
| 2.0.1 | 24 Aug 2016 | 2 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 19:19 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:ca338ed31e02785b0e61d2e476f516511faeea46b6103882b42cbd31a66b684c