UNPKG

hipstapas.core

Version:

Easy and unobtrusive generation of secure strings, uuids, passphrases (using EFF wordlists) and random numbers.

48 lines (45 loc) 1.64 kB
function validateResultObject(validationStatus, value, errorMessage) { return { "success": validationStatus, "value": value, "error": errorMessage }; } function evaluateValidation(validationResults) { for(let i = 0; i < validationResults.length; i++) { if (!validationResults[i].success) { return validateResultObject(false, null, validationResults[i].error); } } return validateResultObject(true, null, ""); } /** * Validates the specified input using the validation rules. * Every validation rule is applied to the input value. * If a check fails, the validation breaks and the specified for the current check error message is returned. * @param {*} value input value to be checked * @param {*} validationRules object containing an array of validation rules and corresponding error messages * { * rules: [ * { "check": function, "message": string }, * { "check": function, "message": string } * ] * } */ function validate(value, validationRules, defaultValue) { if (value === undefined) { return validateResultObject(true, defaultValue, ""); } let validationOk = false; let errorMessage = ""; for (let i = 0; i < validationRules.rules.length; i++) { let rule = validationRules.rules[i]; validationOk = rule.check(value); if (!validationOk) { errorMessage = rule.message; break; } } return validateResultObject(validationOk, value, errorMessage); } module.exports = { validate, validateResultObject, evaluateValidation };