alamid-schema
Version:
Extendable mongoose-like schemas for node.js and the browser
49 lines (44 loc) • 1.06 kB
JavaScript
;
/**
* returns a required validator
* @returns {Function}
*/
function requiredValidator() {
return function validateRequired(val) {
return (val !== undefined && val !== null && val !== "") || "required";
};
}
/**
* returns an enum validator
* @param {Array} enumValues
* @return {Function}
*/
function enumValidator(enumValues) {
return function validateEnum(val) {
return enumValues.indexOf(val) !== -1 || "enum";
};
}
/**
* returns a min validator
* @param {Number} minValue
* @return {Function}
*/
function minValidator(minValue) {
return function validateMin(val) {
return val >= minValue || "min";
};
}
/**
* returns a max validator
* @param {Number} minValue
* @return {Function}
*/
function maxValidator(minValue) {
return function validateMax(val) {
return val <= minValue || "max";
};
}
exports.required = requiredValidator;
exports.min = minValidator;
exports.max = maxValidator;
exports.enum = enumValidator;