Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a2e0ed8

Browse files
jaysoovsavkin
authored andcommittedFeb 25, 2020
fix(core): improve performance of affected computation
- Uses a shared mutable state between project traversals so we don't create new objects unnecessarily - Closes #2367
1 parent 01fcaa7 commit a2e0ed8

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed
 

‎packages/workspace/src/core/affected-project-graph/affected-project-graph.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,12 @@ function addAffectedNodes(
7777
if (!reversed.nodes[startingProject]) {
7878
throw new Error(`Invalid project name is detected: "${startingProject}"`);
7979
}
80+
visited.push(startingProject);
8081
builder.addNode(reversed.nodes[startingProject]);
8182
const ds = reversed.dependencies[startingProject];
8283
if (ds) {
8384
ds.forEach(({ target }) =>
84-
addAffectedNodes(target, reversed, builder, [...visited, startingProject])
85+
addAffectedNodes(target, reversed, builder, visited)
8586
);
8687
}
8788
}
@@ -93,12 +94,10 @@ function addAffectedDependencies(
9394
visited: string[]
9495
): void {
9596
if (visited.indexOf(startingProject) > -1) return;
97+
visited.push(startingProject);
9698
if (reversed.dependencies[startingProject]) {
9799
reversed.dependencies[startingProject].forEach(({ target }) =>
98-
addAffectedDependencies(target, reversed, builder, [
99-
...visited,
100-
startingProject
101-
])
100+
addAffectedDependencies(target, reversed, builder, visited)
102101
);
103102
reversed.dependencies[startingProject].forEach(
104103
({ type, source, target }) => {

0 commit comments

Comments
 (0)
Please sign in to comment.