Skip to content

Commit 08c7e60

Browse files
committed
Bugfix: ShowComponentHierarchy no longer fails when the Angular application contains recursive component.
1 parent 5aa4851 commit 08c7e60

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
# Change Log
22

3+
## Version 1.2.2
4+
5+
- Fixed bug: Show component hierarchy no longer fails when the Angular application contains recursive component.
6+
37
## Version 1.2.1
48

5-
-Fixed bug in Readme.md
9+
- Fixed bug in Readme.md
610

711
## Version 1.2.0
812

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"displayName": "AngularTools",
55
"description": "AngularTools is a collection of tools for exploring an Angular project, help you with documenting, reverse engineering a project or help when refactoring.",
66
"icon": "images/logo.png",
7-
"version": "1.2.1",
7+
"version": "1.2.2",
88
"repository": "https://github.com/CoderAllan/vscode-angulartools",
99
"author": {
1010
"name": "Allan Simonsen",

src/commands/showComponentHierarchy.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,17 +112,19 @@ export class ShowComponentHierarchy {
112112
for (let selector in componentHash) {
113113
const component = componentHash[selector];
114114
if (component.isRoot) {
115-
this.generateDirectedGraphNodes(component.subComponents, component, true, appendNodes);
115+
this.generateDirectedGraphNodes(component.subComponents, component, true, '', appendNodes);
116116
this.generateDirectedGraphEdges(component.subComponents, selector, "", appendLinks);
117117
}
118118
}
119119
}
120120

121-
private generateDirectedGraphNodes(components: Component[], component: Component, isRoot: boolean, appendNodes: (nodeList: Node[]) => void) {
121+
private generateDirectedGraphNodes(components: Component[], component: Component, isRoot: boolean, parentSelector: string, appendNodes: (nodeList: Node[]) => void) {
122122
appendNodes([new Node(component.selector, component.templateFilename, isRoot)]);
123123
if (components.length > 0) {
124124
components.forEach((subComponent) => {
125-
this.generateDirectedGraphNodes(subComponent.subComponents, subComponent, subComponent.isRoot, appendNodes);
125+
if(parentSelector !== subComponent.selector) {
126+
this.generateDirectedGraphNodes(subComponent.subComponents, subComponent, subComponent.isRoot, component.selector, appendNodes);
127+
}
126128
});
127129
}
128130
}
@@ -132,7 +134,7 @@ export class ShowComponentHierarchy {
132134
const id = Math.random() * 100000;
133135
appendLinks([new Edge(id.toString(), parentSelector, selector)]);
134136
}
135-
if (subComponents.length > 0) {
137+
if (subComponents.length > 0 && selector !== parentSelector) {
136138
subComponents.forEach((subComponent) => {
137139
this.generateDirectedGraphEdges(subComponent.subComponents, subComponent.selector, selector, appendLinks);
138140
});

0 commit comments

Comments
 (0)