updateExistingDependencies function

void updateExistingDependencies(
  1. YamlEditor editor,
  2. Pubspec pubspec,
  3. Catalog catalog
)

Updates existing dependencies in a pubspec with catalog versions. Only updates dependencies that already exist in the pubspec. Warns if a dependency_overrides entry matches a catalog dependency.

Implementation

void updateExistingDependencies(
  YamlEditor editor,
  pubspec_parse.Pubspec pubspec,
  Catalog catalog,
) {
  final catalogDependencies = catalog.dependencies;
  if (catalogDependencies == null || catalogDependencies.isEmpty) {
    return;
  }

  final dependencySections = [
    ('dependencies', pubspec.dependencies),
    ('dev_dependencies', pubspec.devDependencies),
  ];

  for (final (sectionName, sectionDeps) in dependencySections) {
    if (sectionDeps.isEmpty) {
      continue;
    }

    for (final entry in sectionDeps.entries) {
      final packageName = entry.key;
      if (catalogDependencies.containsKey(packageName)) {
        final catalogDep = catalogDependencies[packageName]!;
        editor.update([sectionName, packageName], catalogDep.toJson());
      }
    }
  }

  for (final entry in pubspec.dependencyOverrides.entries) {
    final packageName = entry.key;
    if (catalogDependencies.containsKey(packageName)) {
      Logger.root.warning(
        'Catalog version for "$packageName" in ${pubspec.name} will be '
        'overridden by dependency_overrides.',
      );
    }
  }
}