kp-validator
Version:
The `kp-validator` is a lightweight JavaScript library designed to simplify data interaction and validation. It streamlines the validation processes and provides essential helper functions to enhance efficiency in your projects.This package provides a lig
87 lines (85 loc) • 3.15 kB
JavaScript
function validater(r, v, d = {}) {
let vali;
let errors = [];
for (var ky in v) {
let message="";
if (isEmpty(r.body[ky]) && (v[ky]==="required"|| v[ky].required===true)) {
message =setErrorMessage(d,ky,ky + " is required!",'required');
vali = {
status_code: d.statusCode ?? "400",
status: d.status ?? false,
message: message,
};
errors.push(message);
}else if(r.body[ky]){
let mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(v[ky].email===true && !r.body[ky].toString().match(mailformat)){
message = setErrorMessage(d,ky,`Invalid ${ky}.`);
}
let phoneno = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
if(v[ky].phone===true && !r.body[ky].toString().match(phoneno)){
message = setErrorMessage(d,ky,`Invalid ${ky}.`,'phone');
}
let checkDate = /^(?:19|20)\d\d-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)$/;
if(v[ky].date===true && !r.body[ky].toString().match(checkDate)){
message = setErrorMessage(d,ky,`Invalid ${ky}.`,'date');
}
if(v[ky].max && r.body[ky].length > v[ky].max){
message = setErrorMessage(d,ky,`Max Length ${v[ky].max}.`,'max');
}
if(v[ky].min && r.body[ky].length < v[ky].min){
message = setErrorMessage(d,ky,`Min Length ${v[ky].min}.`,'min');
}
if(v[ky].type && (typeof r.body[ky])!==v[ky].type){
message = setErrorMessage(d,ky,`Invalid ${v[ky].type}.`,'type');
}
if(v[ky].regex && !r.body[ky].match(v[ky].regex)){
message = setErrorMessage(d,ky,`Invalid ${ky}.`,'regex');
}
if(message && message!=="" && message!==undefined){
vali = {
status_code: d.statusCode ?? "400",
status: d.status ?? false,
message: message,
};
errors.push(message);
}
}
}
return d.errors ? isNotEmpty(errors,errors): vali ?? false;
}
function isEmpty(data,resend=true,resendF=false){
if (data !== undefined && data !== null && data !== "") return resendF;
return resend;
}
function isNotEmpty(data,resendF=true,resend=false){
if (data !== undefined && data !== null && data !== "") return resendF;
return resend;
}
function isNotObject(x) {
if( (typeof x === "object" || typeof x === 'function') && (x !== null) )
{
return false;
}else{
return true;
}
}
function isObject(x) {
if( (typeof x === "object" || typeof x === 'function') && (x !== null) )
{
return true;
}else{
return false;
}
}
function setErrorMessage(d,ky,params="Invalid",msg) {
return d.message && d.message[ky]
? isNotEmpty(isNotObject(d.message[ky]),isNotEmpty(d.message[ky],d.message[ky]),d.message[ky][msg]):params;
}
module.exports = {
validater,
isObject,
isNotObject,
isNotEmpty,
isEmpty
}