validate
Version:
Validate object properties in javascript.
125 lines (110 loc) • 3.33 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _componentType = _interopRequireDefault(require("component-type"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/**
* Default validators.
*
* @private
*/
var Validators = {
/**
* Validates presence.
*
* @param {Mixed} value - the value being validated
* @param {Object} ctx - the object being validated
* @param {Bolean} required
* @return {Boolean}
*/
required: function required(value, ctx, _required) {
if (_required === false) return true;
return value != null && value !== '';
},
/**
* Validates type.
*
* @param {Mixed} value - the value being validated
* @param {Object} ctx - the object being validated
* @param {String|Function} name name of the type or a constructor
* @return {Boolean}
*/
type: function type(value, ctx, name) {
if (value == null) return true;
if (typeof name == 'function') {
return value.constructor === name;
}
return (0, _componentType["default"])(value) === name;
},
/**
* Validates length.
*
* @param {String} value the string being validated
* @param {Object} ctx the object being validated
* @param {Object|Number} rules object with .min and/or .max props or a number
* @param {Number} [rules.min] - minimum length
* @param {Number} [rules.max] - maximum length
* @return {Boolean}
*/
length: function length(value, ctx, len) {
if (value == null) return true;
if (typeof len == 'number') {
return value.length === len;
}
var min = len.min,
max = len.max;
if (min && value.length < min) return false;
if (max && value.length > max) return false;
return true;
},
/**
* Validates size.
*
* @param {Number} value the number being validated
* @param {Object} ctx the object being validated
* @param {Object|Number} size object with .min and/or .max props or a number
* @param {String|Number} [size.min] - minimum size
* @param {String|Number} [size.max] - maximum size
* @return {Boolean}
*/
size: function size(value, ctx, _size) {
if (value == null) return true;
if (typeof _size == 'number') {
return value === _size;
}
var min = _size.min,
max = _size.max;
if (parseInt(min) != null && value < min) return false;
if (parseInt(max) != null && value > max) return false;
return true;
},
/**
* Validates enums.
*
* @param {String} value the string being validated
* @param {Object} ctx the object being validated
* @param {Array} enums array with allowed values
* @return {Boolean}
*/
"enum": function _enum(value, ctx, enums) {
if (value == null) return true;
return enums.includes(value);
},
/**
* Validates against given `regexp`.
*
* @param {String} value the string beign validated
* @param {Object} ctx the object being validated
* @param {RegExp} regexp the regexp to validate against
* @return {Boolean}
*/
match: function match(value, ctx, regexp) {
if (value == null) return true;
return regexp.test(value);
}
};
var _default = Validators;
exports["default"] = _default;
module.exports = exports.default;
;