执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
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
"use strict";
 
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
 
exports.__esModule = true;
exports.default = sortFields;
 
var _has = _interopRequireDefault(require("lodash/has"));
 
var _toposort = _interopRequireDefault(require("toposort"));
 
var _propertyExpr = require("property-expr");
 
var _Reference = _interopRequireDefault(require("../Reference"));
 
var _isSchema = _interopRequireDefault(require("./isSchema"));
 
function sortFields(fields, excludes) {
  if (excludes === void 0) {
    excludes = [];
  }
 
  var edges = [],
      nodes = [];
 
  function addNode(depPath, key) {
    var node = (0, _propertyExpr.split)(depPath)[0];
    if (!~nodes.indexOf(node)) nodes.push(node);
    if (!~excludes.indexOf(key + "-" + node)) edges.push([key, node]);
  }
 
  for (var key in fields) {
    if ((0, _has.default)(fields, key)) {
      var value = fields[key];
      if (!~nodes.indexOf(key)) nodes.push(key);
      if (_Reference.default.isRef(value) && !value.isContext) addNode(value.path, key);else if ((0, _isSchema.default)(value) && value._deps) value._deps.forEach(function (path) {
        return addNode(path, key);
      });
    }
  }
 
  return _toposort.default.array(nodes, edges).reverse();
}
 
module.exports = exports["default"];