Skip to content

Commit 3179609

Browse files
refactor: dont track node depth
1 parent c743c74 commit 3179609

File tree

2 files changed

+12
-22
lines changed

2 files changed

+12
-22
lines changed

packages/core/injector/topology-tree/topology-tree.ts

+11-21
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,15 @@ import { TreeNode } from './tree-node';
33

44
export class TopologyTree {
55
private root: TreeNode<Module>;
6-
private links: Map<
7-
Module,
8-
{
9-
node: TreeNode<Module>;
10-
depth: number;
11-
}
12-
> = new Map();
6+
private links: Map<Module, TreeNode<Module>> = new Map();
137

14-
static from(root: Module) {
15-
const tree = new TopologyTree();
16-
tree.root = new TreeNode<Module>({
17-
value: root,
8+
constructor(moduleRef: Module) {
9+
this.root = new TreeNode<Module>({
10+
value: moduleRef,
1811
parent: null,
1912
});
20-
21-
tree.traverseAndCloneTree(tree.root);
22-
return tree;
13+
this.links.set(moduleRef, this.root);
14+
this.traverseAndCloneTree(this.root);
2315
}
2416

2517
public walk(callback: (value: Module, depth: number) => void) {
@@ -37,9 +29,9 @@ export class TopologyTree {
3729
}
3830
if (this.links.has(child)) {
3931
const existingSubtree = this.links.get(child)!;
40-
if (existingSubtree.depth < depth) {
41-
existingSubtree.node.relink(node);
42-
existingSubtree.depth = depth;
32+
const existingDepth = existingSubtree.getDepth({ stopOn: node.value });
33+
if (existingDepth < depth) {
34+
existingSubtree.relink(node);
4335
}
4436
return;
4537
}
@@ -49,10 +41,8 @@ export class TopologyTree {
4941
parent: node,
5042
});
5143
node.addChild(childNode);
52-
this.links.set(child, {
53-
node: childNode,
54-
depth,
55-
});
44+
45+
this.links.set(child, childNode);
5646

5747
this.traverseAndCloneTree(childNode, depth + 1);
5848
});

packages/core/scanner.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ export class DependenciesScanner {
402402
const rootModule = modulesGenerator.next().value!;
403403

404404
// Convert modules to an acyclic connected graph
405-
const tree = TopologyTree.from(rootModule);
405+
const tree = new TopologyTree(rootModule);
406406
tree.walk((moduleRef, depth) => {
407407
if (moduleRef.isGlobal) {
408408
return;

0 commit comments

Comments
 (0)