getTransitiveDependents method
Implementation
Map<String, List<String>> getTransitiveDependents(String startPath) {
final Map<String, List<String>> dependentsWithTrace = {};
final Set<String> visited = {startPath};
void dfs(String currentPath, List<String> currentPathTrace) {
final direct = _importedBy[currentPath] ?? const {};
for (final dependent in direct) {
if (!visited.contains(dependent)) {
visited.add(dependent);
final newTrace = [...currentPathTrace, dependent];
dependentsWithTrace[dependent] = newTrace;
dfs(dependent, newTrace);
}
}
}
dfs(startPath, [startPath]);
return dependentsWithTrace;
}