Blame view

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