fluent-vuelidate
Version:
A fluent, typescript-first validation library for Vue3
42 lines (41 loc) • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createStringValidator = void 0;
const types_1 = require("../types");
const is_email_1 = require(".././validation-actions/is-email");
const is_required_1 = require("../validation-actions/is-required");
const is_equals_1 = require("../validation-actions/is-equals");
const has_length_1 = require("../validation-actions/has-length");
const has_min_max_length_1 = require("../validation-actions/has-min-max-length");
const createStringValidator = (model, property, validations) => {
if (!validations[property]) {
validations[property] = [];
}
const _validator = {};
_validator.isRequired = (message) => {
validations[property].push(() => (0, is_required_1.useIsRequired)(model, property, message));
return _validator;
};
_validator.isEquals = (comparer, message) => {
validations[property].push(() => (0, is_equals_1.useIsEquals)(model, property, comparer, message));
return _validator;
};
_validator.isEmail = (message) => {
validations[property].push(() => (0, is_email_1.useIsEmail)(model, property, message));
return _validator;
};
_validator.hasLength = (fixedLen, message) => {
validations[property].push(() => (0, has_length_1.useHasLength)(model, property, fixedLen, message));
return _validator;
};
_validator.hasMinLength = (minLength, message) => {
validations[property].push(() => (0, has_min_max_length_1.useLimitedLength)(model, property, { limit: minLength, type: types_1.Extremes.minimum }, message));
return _validator;
};
_validator.hasMaxLength = (maxLength, message) => {
validations[property].push(() => (0, has_min_max_length_1.useLimitedLength)(model, property, { limit: maxLength, type: types_1.Extremes.maximum }, message));
return _validator;
};
return _validator;
};
exports.createStringValidator = createStringValidator;