livr
Version:
Lightweight validator supporting Language Independent Validation Rules Specification
32 lines (24 loc) • 806 B
JavaScript
const Validator = require('../../Validator');
function or() {
const ruleSets = Array.prototype.slice.call(arguments);
const ruleBuilders = ruleSets.pop();
const validators = ruleSets.map(rules => {
const livr = { field: rules };
const validator = new Validator(livr).registerRules(ruleBuilders).prepare();
return validator;
});
return (value, params, outputArr) => {
let lastError;
for (const validator of validators) {
const result = validator.validate({ field: value });
if (result) {
outputArr.push(result.field);
return;
} else {
lastError = validator.getErrors().field;
}
}
return lastError;
};
}
module.exports = or;