UNPKG

radh-ui

Version:

Stencil Component Starter

34 lines (33 loc) 1.11 kB
import { defaultValidator, combineValidators } from './validator'; import { FruitValidator } from './fruit-validator/fruit-validator'; import { getLengthValidator } from './length-validator/length-validator'; export var ValidatorsName; (function (ValidatorsName) { ValidatorsName["fruit"] = "fruit"; ValidatorsName["length"] = "length"; })(ValidatorsName || (ValidatorsName = {})); export function getValidator(list) { return (list || []).map(v => { if (typeof v === 'string') { return validatorFactory(v, null); } else if (v && v.name) { v = v; return validatorFactory(v.name, v.options); } else { return v; } }).reduce(combineValidators, defaultValidator); } export function validatorFactory(name, options) { options = options || {}; switch (name) { case (ValidatorsName.fruit): return FruitValidator; case (ValidatorsName.length): return getLengthValidator(options.min, options.max); default: return defaultValidator; } }