selectorValidator.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var selectorPropertyBase_1 = require("../selectorPropertyBase");
  4. exports.SelectorValidator = {
  5. attribute: function (selector) {
  6. return selector.length !== 0;
  7. },
  8. camelCase: function (selector) {
  9. return /^[a-zA-Z0-9\[\]]+$/.test(selector);
  10. },
  11. element: function (selector) {
  12. return selector !== null;
  13. },
  14. kebabCase: function (selector) {
  15. return /^[a-z0-9\-]+\-[a-z0-9\-]+$/.test(selector);
  16. },
  17. prefix: function (prefix, selectorStyle) {
  18. var regex = new RegExp("^\\[?(" + prefix + ")");
  19. return function (selector) {
  20. if (!prefix)
  21. return true;
  22. if (!regex.test(selector))
  23. return false;
  24. var suffix = selector.replace(regex, '');
  25. if (selectorStyle === selectorPropertyBase_1.OPTION_STYLE_CAMEL_CASE) {
  26. return !suffix || suffix[0] === suffix[0].toUpperCase();
  27. }
  28. else if (selectorStyle === selectorPropertyBase_1.OPTION_STYLE_KEBAB_CASE) {
  29. return !suffix || suffix[0] === '-';
  30. }
  31. throw Error('Invalid selector style!');
  32. };
  33. }
  34. };