getPackageGraph function
Implementation
Future<DirectedGraph<Package>> getPackageGraph(Directory root) async {
final vertices = await findPackages(root).toList();
return DirectedGraph<Package>(
{
for (var vertex in vertices)
vertex: vertex.pubspec.allDependencies.keys
.map(
(dep) => vertices.firstWhereOrNull(
(v) => v.name == dep,
),
)
.whereNotNull()
.toSet(),
},
comparator: (
vertex1,
vertex2,
) =>
vertex1.name.compareTo(vertex2.name),
);
}