previewChanges static method

List<String> previewChanges(
  1. AnalysisResult analysisResult
)

Preview changes without applying them

Implementation

static List<String> previewChanges(AnalysisResult analysisResult) {
  final changes = <String>[];

  // Preview unused dependency removals
  for (final dep in analysisResult.unusedDependencies) {
    changes.add('Would remove unused dependency: ${dep.name}');
  }

  // Preview misplaced dependency moves
  final misplacedDeps = analysisResult.testOnlyDependencies
      .where((DependencyInfo dep) => dep.section == DependencySection.dependencies)
      .toList();

  for (final dep in misplacedDeps) {
    changes.add(
        'Would move to dev_dependencies: ${dep.name} (${dep.usageDescription})');
  }

  // Preview duplicate dependency fixes
  for (final duplicate in analysisResult.duplicates) {
    if (duplicate.recommendedSection == DependencySection.dependencies) {
      changes.add(
          'Would remove duplicate from dev_dependencies: ${duplicate.name} (${duplicate.recommendationMessage})');
    } else {
      changes.add(
          'Would remove duplicate from dependencies: ${duplicate.name} (${duplicate.recommendationMessage})');
    }
  }

  return changes;
}