You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rules.js 1.6 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _SimpleRule = require('../rules/SimpleRule');
  6. var _SimpleRule2 = _interopRequireDefault(_SimpleRule);
  7. var _KeyframesRule = require('../rules/KeyframesRule');
  8. var _KeyframesRule2 = _interopRequireDefault(_KeyframesRule);
  9. var _ConditionalRule = require('../rules/ConditionalRule');
  10. var _ConditionalRule2 = _interopRequireDefault(_ConditionalRule);
  11. var _FontFaceRule = require('../rules/FontFaceRule');
  12. var _FontFaceRule2 = _interopRequireDefault(_FontFaceRule);
  13. var _ViewportRule = require('../rules/ViewportRule');
  14. var _ViewportRule2 = _interopRequireDefault(_ViewportRule);
  15. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  16. var classes = {
  17. '@charset': _SimpleRule2['default'],
  18. '@import': _SimpleRule2['default'],
  19. '@namespace': _SimpleRule2['default'],
  20. '@keyframes': _KeyframesRule2['default'],
  21. '@media': _ConditionalRule2['default'],
  22. '@supports': _ConditionalRule2['default'],
  23. '@font-face': _FontFaceRule2['default'],
  24. '@viewport': _ViewportRule2['default'],
  25. '@-ms-viewport': _ViewportRule2['default']
  26. /**
  27. * Generate plugins which will register all rules.
  28. */
  29. };
  30. var plugins = Object.keys(classes).map(function (key) {
  31. // https://jsperf.com/indexof-vs-substr-vs-regex-at-the-beginning-3
  32. var re = new RegExp('^' + key);
  33. var RuleClass = classes[key];
  34. var onCreateRule = function onCreateRule(name, decl, options) {
  35. return re.test(name) ? new RuleClass(name, decl, options) : null;
  36. };
  37. return { onCreateRule: onCreateRule };
  38. });
  39. exports['default'] = plugins;