radh-ui
Version:
Stencil Component Starter
34 lines (33 loc) • 1.11 kB
JavaScript
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;
}
}