UNPKG

fluent-vuelidate

Version:

A fluent, typescript-first validation library for Vue3

42 lines (41 loc) 2.04 kB
"use strict"; 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;