validanode
v1.0.5
Published
VALIDANODE adalah sebuah validator yang dibuat dengan Javascript.
Readme
VALIDANODE
Table of Content
Description
VALIDANODE adalah sebuah validator yang dibuat dengan Javascript.
Installation
npm install validanodeHow To Use
Simple Usage
const validanode = require('validanode');
const validator = new validanode;
(async function () {
let data = {
name: "Defri Indra Mahardika",
age: 17,
};
let field = {
attribute: ['name', 'age'],
rules: ['required', 'string'],
};
err = await validator.check(field, data);
if (err) console.log(err);
})();OUTPUT :
{ age: [ 'The age must a string!' ] }Get All Validator
const validanode = require('validanode');
const customValidation = require('validanode/my-custom-validation/custom');
const anotherCustomValidation = require('validanode/my-custom-validation/another-custom');
const validator = new validanode();
validator.add(customValidation);
validator.add(anotherCustomValidation);
(async function () {
validator
.getValidators()
.then(result => console.log(result));
})();OUTPUT :
[
'NUMBER',
'STRING',
'BOOLEAN',
'OBJECT',
'ARRAY',
'REQUIRED',
'START_WITH',
'EQUAL_WITH',
'GREATER_THAN.ATTRIBUTE',
'EMAIL.YAHOO',
'EMAIL.GOOGLE'
]Change Error Message
const validanode = require('validanode');
const validator = new validanode;
(async function () {
let data = {
// name: "Defri Indra Mahardika",
age: 17,
};
let field = {
'attribute': ['name', 'age'],
'rules': [{
'rule': 'required',
'property.message': "Kolom '{attribute}' tidak boleh kosong."
}, {
'rule': "string",
'property.message': "Kolom '{attribute}' harus berupa string."
}],
};
let err = await validator.check(field, data);
if (err) console.log(err);
})();OUTPUT :
{
name: [
"Kolom 'name' tidak boleh kosong.",
"Kolom 'name' harus berupa string."
],
age: [ "Kolom 'age' harus berupa string." ]
}Get Validator Schema
const validanode = require('validanode');
const validator = new validanode;
(async function () {
let schema = validator.getValidator('EQUAL_WITH');
console.log(schema);
})();OUTPUT :
{
name: 'EQUAL_WITH',
attribute: '',
property: {
targetAttribute: '',
message: 'The {attribute} must equal with {property.targetAttribute}'
},
action: [Function: action]
}Add Custom Validator
const Validanode = require("validanode");
const { invalidMessage } = require("validanode/lib/core");
const CUSTOM_VALIDATION = {
EMAIL: {
YAHOO: {
name: 'EMAIL.YAHOO',
property: {
message: 'The {attribute} should be a valid yahoo mail.'
},
action: function (data) {
value = data.value
regex = /[a-zA-Z0-9\.].+\@yahoo\.com/i
if (value.match(regex)) {
return;
}
return invalidMessage(data);
}
}
}
};
const validator = new Validanode;
validator.add(CUSTOM_VALIDATION);
(async function () {
let data = {
email: '[email protected]'
};
let fields = {
attribute: 'email',
rules: 'EMAIL.YAHOO'
};
let err = await validator.check(fields, data);
if (err) console.log(err);
})();OUTPUT :
{ email: [ 'The email should be a valid yahoo mail.' ] }Localization
const validanode = require('validanode');
const MESSAGES = {
'number': 'Kolom {attribute} harus berupa number!',
'required': 'Kolom {attribute} tidak boleh kosong.',
'greater_than.attribute': 'Kolom {attribute} harus lebih besar dari kolom {property.targetAttribute}',
};
const validator = new validanode;
validator.localization(MESSAGES);
(async function () {
let data = {
field_1: 12,
};
let fields = [{
'attribute': ['field_1', 'field_2'],
'rules': ['required', 'number']
}, {
'attribute': 'field_1',
'rules': {
'rule': 'greater_than.attribute',
'property.targetAttribute': 'field_2'
}
}];
let err = await validator.check(fields, data);
if (err) console.log(err);
})();OUTPUT :
{
field_2: [
'Kolom field_2 tidak boleh kosong.',
'Kolom field_2 harus berupa number!'
],
field_1: [ 'Kolom field_1 harus lebih besar dari kolom field_2' ]
}