Skip to content

Commit 7dfa228

Browse files
Remove recursion
1 parent 4e4528e commit 7dfa228

3 files changed

Lines changed: 48 additions & 38 deletions

File tree

src/public/dist/bundle.js

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -86896,6 +86896,8 @@ var _SvgDraw = __webpack_require__(/*! ../utils/SvgDraw */ "./js/components/tree
8689686896

8689786897
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8689886898

86899+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
86900+
8689986901
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8690086902

8690186903
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
@@ -86956,37 +86958,43 @@ var DependenciesTree = function (_React$Component) {
8695686958
};
8695786959

8695886960
if (dependenciesShowOneModule) {
86959-
var entryModule = dependenciesList.find(function (d) {
86961+
return [dependenciesList.find(function (d) {
8696086962
return d.moduleName === entryPoint.path;
86961-
});
86962-
return [entryModule];
86963+
})];
8696386964
}
8696486965

86965-
var dependenciesStore = [];
86966-
this.collectDependencies(entryPoint.path, dependenciesList, dependenciesStore);
86967-
return dependenciesStore;
86966+
return this.collectDependencies(entryPoint.path, dependenciesList);
8696886967
}
8696986968
}, {
8697086969
key: 'collectDependencies',
8697186970
value: function collectDependencies(entryModuleName, dependenciesList) {
86972-
var _this2 = this;
86971+
var queue = [].concat(entryModuleName),
86972+
store = [];
8697386973

86974-
var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
86974+
var _loop = function _loop() {
86975+
var moduleName = queue.shift(),
86976+
entryModule = dependenciesList.find(function (d) {
86977+
return d.moduleName === moduleName;
86978+
});
8697586979

86976-
var entryModule = dependenciesList.find(function (d) {
86977-
return d.moduleName === entryModuleName;
86978-
});
86980+
store.push(entryModule);
8697986981

86980-
store.push(entryModule);
86982+
var nodeBody = entryModule.importedModuleNames;
86983+
if (nodeBody) {
86984+
queue = [].concat(_toConsumableArray(queue), _toConsumableArray(nodeBody));
86985+
}
86986+
};
8698186987

86982-
entryModule.importedModuleNames.forEach(function (name) {
86983-
return _this2.collectDependencies(name, dependenciesList, store);
86984-
});
86988+
while (queue.length) {
86989+
_loop();
86990+
}
86991+
86992+
return store;
8698586993
}
8698686994
}, {
8698786995
key: 'drawTree',
8698886996
value: function drawTree() {
86989-
var _this3 = this;
86997+
var _this2 = this;
8699086998

8699186999
var _props2 = this.props,
8699287000
primaryDraw = _props2.primaryDraw,
@@ -87002,7 +87010,7 @@ var DependenciesTree = function (_React$Component) {
8700287010
var moduleName = _ref2.moduleName,
8700387011
importedModuleNames = _ref2.importedModuleNames;
8700487012

87005-
var moduleNode = _this3.findNodeByPathName(moduleFilesList, moduleName);
87013+
var moduleNode = _this2.findNodeByPathName(moduleFilesList, moduleName);
8700687014

8700787015
if (!moduleNode) return;
8700887016

@@ -87024,7 +87032,7 @@ var DependenciesTree = function (_React$Component) {
8702487032
}
8702587033

8702687034
importedModuleNames.reduce(function (prevSource, name) {
87027-
var importedNode = _this3.findNodeByPathName(moduleFilesList, name);
87035+
var importedNode = _this2.findNodeByPathName(moduleFilesList, name);
8702887036

8702987037
if (!importedNode) return;
8703087038

src/public/dist/bundle.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/public/js/components/tree-diagram/component/DependenciesTree/DependenciesTree.js

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,33 @@ class DependenciesTree extends React.Component {
3232
};
3333

3434
if (dependenciesShowOneModule) {
35-
const entryModule = dependenciesList.find(
36-
d => d.moduleName === entryPoint.path
37-
);
38-
return [entryModule];
35+
return [
36+
dependenciesList.find(d => d.moduleName === entryPoint.path)
37+
];
3938
}
4039

41-
const dependenciesStore = [];
42-
this.collectDependencies(
43-
entryPoint.path,
44-
dependenciesList,
45-
dependenciesStore
46-
);
47-
return dependenciesStore;
40+
return this.collectDependencies(entryPoint.path, dependenciesList);
4841
}
4942

50-
collectDependencies(entryModuleName, dependenciesList, store = []) {
51-
const entryModule = dependenciesList.find(
52-
d => d.moduleName === entryModuleName
53-
);
43+
collectDependencies(entryModuleName, dependenciesList) {
44+
let queue = [].concat(entryModuleName),
45+
store = [];
5446

55-
store.push(entryModule);
47+
while (queue.length) {
48+
let moduleName = queue.shift(),
49+
entryModule = dependenciesList.find(
50+
d => d.moduleName === moduleName
51+
);
5652

57-
entryModule.importedModuleNames.forEach(name =>
58-
this.collectDependencies(name, dependenciesList, store)
59-
);
53+
store.push(entryModule);
54+
55+
const nodeBody = entryModule.importedModuleNames;
56+
if (nodeBody) {
57+
queue = [...queue, ...nodeBody];
58+
}
59+
}
60+
61+
return store;
6062
}
6163

6264
drawTree() {

0 commit comments

Comments
 (0)