index.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. 'use strict';
  2. exports.__esModule = true;
  3. var _postcss = require('postcss');
  4. var _postcss2 = _interopRequireDefault(_postcss);
  5. var _getParsed = require('./lib/getParsed');
  6. var _getParsed2 = _interopRequireDefault(_getParsed);
  7. var _border = require('./rules/border');
  8. var _border2 = _interopRequireDefault(_border);
  9. var _boxShadow = require('./rules/boxShadow');
  10. var _boxShadow2 = _interopRequireDefault(_boxShadow);
  11. var _flexFlow = require('./rules/flexFlow');
  12. var _flexFlow2 = _interopRequireDefault(_flexFlow);
  13. var _transition = require('./rules/transition');
  14. var _transition2 = _interopRequireDefault(_transition);
  15. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  16. /* eslint-disable quote-props */
  17. // rules
  18. var rules = {
  19. 'border': _border2.default,
  20. 'border-top': _border2.default,
  21. 'border-right': _border2.default,
  22. 'border-bottom': _border2.default,
  23. 'border-left': _border2.default,
  24. 'outline': _border2.default,
  25. 'box-shadow': _boxShadow2.default,
  26. 'flex-flow': _flexFlow2.default,
  27. 'transition': _transition2.default,
  28. '-webkit-transition': _transition2.default
  29. };
  30. /* eslint-enable */
  31. function shouldAbort(parsed) {
  32. var abort = false;
  33. parsed.walk(function (_ref) {
  34. var type = _ref.type,
  35. value = _ref.value;
  36. if (type === 'comment' || type === 'function' && value === 'var' || type === 'word' && ~value.indexOf('___CSS_LOADER_IMPORT___')) {
  37. abort = true;
  38. return false;
  39. }
  40. });
  41. return abort;
  42. }
  43. exports.default = _postcss2.default.plugin('postcss-ordered-values', function () {
  44. return function (css) {
  45. css.walkDecls(function (decl) {
  46. var processor = rules[decl.prop];
  47. if (!processor) {
  48. return;
  49. }
  50. var parsed = (0, _getParsed2.default)(decl);
  51. if (parsed.nodes.length < 2 || shouldAbort(parsed)) {
  52. return;
  53. }
  54. processor(decl, parsed);
  55. });
  56. };
  57. });
  58. module.exports = exports['default'];