getWorkspaceDependencies static method

Map<String, WorkspacePackage> getWorkspaceDependencies({
  1. required Map<String, WorkspacePackage> allWorkspacePackages,
  2. required WorkspacePackage package,
  3. required Map<String, WorkspacePackage> included,
})

Recursively gets all workspace dependencies of a package, without duplicates.

Implementation

static Map<String, WorkspacePackage> getWorkspaceDependencies({
  required final Map<String, WorkspacePackage> allWorkspacePackages,
  required final WorkspacePackage package,
  required final Map<String, WorkspacePackage> included,
}) {
  for (final packageDependency in package.pubspec.dependencies.entries) {
    final workspaceDependency = allWorkspacePackages[packageDependency.key];
    if (workspaceDependency != null) {
      if (!included.containsKey(packageDependency.key)) {
        included[packageDependency.key] = workspaceDependency;
        getWorkspaceDependencies(
          allWorkspacePackages: allWorkspacePackages,
          package: workspaceDependency,
          included: included,
        );
      }
    }
  }
  return included;
}