c19733322cbb8c8b5586047bfb06a666281a6c2789ef2d1c70f8ecf2174f36c9a05521056bf8cb9c56c01caffdc025a56cc19bbe4677a6cc3baf7b259d4689 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import staticRegister from './../utils/staticRegister';
  2. import autocompleteValidator from './autocompleteValidator';
  3. import dateValidator from './dateValidator';
  4. import numericValidator from './numericValidator';
  5. import timeValidator from './timeValidator';
  6. const {
  7. register,
  8. getItem,
  9. hasItem,
  10. getNames,
  11. getValues,
  12. } = staticRegister('validators');
  13. register('autocomplete', autocompleteValidator);
  14. register('date', dateValidator);
  15. register('numeric', numericValidator);
  16. register('time', timeValidator);
  17. /**
  18. * Retrieve validator function.
  19. *
  20. * @param {String} name Validator identification.
  21. * @returns {Function} Returns validator function.
  22. */
  23. function _getItem(name) {
  24. if (typeof name === 'function') {
  25. return name;
  26. }
  27. if (!hasItem(name)) {
  28. throw Error(`No registered validator found under "${name}" name`);
  29. }
  30. return getItem(name);
  31. }
  32. export {
  33. register as registerValidator,
  34. _getItem as getValidator,
  35. hasItem as hasValidator,
  36. getNames as getRegisteredValidatorNames,
  37. getValues as getRegisteredValidators,
  38. };