getPackageGraph function

Future<DirectedGraph<Package>> getPackageGraph(
  1. Directory root
)

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),
  );
}