swatchjs-utils
Version:
Utilities for SwatchJS, a framework for easily creating and exposing APIs as methods
70 lines (61 loc) • 1.92 kB
JavaScript
;
// Validator that allows a string that matches a regex string
function validateRegex(regexString, error) {
var regex = new RegExp(regexString);
function validator(param) {
// Throw an error if value does not match regex
if (regex.test(param) === false) {
throw new Error(error);
}
}
return validator;
}
// Validator that allows a string with minimum length
function validateMinLength(minLength, error) {
function validator(param) {
// Throw an error if length is less than min length
if (param.length < minLength) {
throw new Error(error);
}
}
return validator;
}
// Validator that allows a string with maximum length
function validateMaxLength(maxLength, error) {
function validator(param) {
// Throw an error if length is greater than max length
if (param.length > maxLength) {
throw new Error(error);
}
}
return validator;
}
// Validator that allows a string with min and max length
function validateMinMaxLength(minLength, maxLength, error) {
var minLengthValidator = validateMinLength(minLength, error);
var maxLengthValidator = validateMaxLength(maxLength, error);
function validator(param) {
// Throw an error if length is less than min length
minLengthValidator(param);
// Throw an error if length is greater than max length
maxLengthValidator(param);
}
return validator;
}
// Helper function to validate string is in a list of options
function validateOptionList(options, error) {
function validator(param) {
// Throw an error if value is not found in options list
if (!options.includes(param)) {
throw new Error(error);
}
}
return validator;
}
module.exports = {
validateMaxLength: validateMaxLength,
validateMinLength: validateMinLength,
validateMinMaxLength: validateMinMaxLength,
validateOptionList: validateOptionList,
validateRegex: validateRegex
};