Projekt

Obecné

Profil

Stáhnout (1.07 KB) Statistiky
| Větev: | Revize:
1
"use strict";
2

    
3
exports.__esModule = true;
4

    
5
var _plugin = require("../plugin");
6

    
7
var _plugin2 = _interopRequireDefault(_plugin);
8

    
9
var _sortBy = require("lodash/sortBy");
10

    
11
var _sortBy2 = _interopRequireDefault(_sortBy);
12

    
13
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14

    
15
exports.default = new _plugin2.default({
16

    
17
  name: "internal.blockHoist",
18

    
19
  visitor: {
20
    Block: {
21
      exit: function exit(_ref) {
22
        var node = _ref.node;
23

    
24
        var hasChange = false;
25
        for (var i = 0; i < node.body.length; i++) {
26
          var bodyNode = node.body[i];
27
          if (bodyNode && bodyNode._blockHoist != null) {
28
            hasChange = true;
29
            break;
30
          }
31
        }
32
        if (!hasChange) return;
33

    
34
        node.body = (0, _sortBy2.default)(node.body, function (bodyNode) {
35
          var priority = bodyNode && bodyNode._blockHoist;
36
          if (priority == null) priority = 1;
37
          if (priority === true) priority = 2;
38

    
39
          return -1 * priority;
40
        });
41
      }
42
    }
43
  }
44
});
45
module.exports = exports["default"];
(1-1/2)