printDryRunResults method

void printDryRunResults(
  1. AnalysisResult result
)

Print analysis results in dry-run format

Implementation

void printDryRunResults(AnalysisResult result) {
  _printSectionHeader('Analysis Results (Dry Run)');

  if (!result.hasIssues) {
    _printSuccess(
        'No issues found! All dependencies are properly organized.');
    return;
  }

  // Print used dependencies
  if (result.usedDependencies.isNotEmpty) {
    _printSubHeader('${OutputConfig.usedIndicator} Used Dependencies');
    for (final dep in result.usedDependencies) {
      _printDependency(dep, OutputConfig.usedIndicator);
    }
    print('');
  }

  // Print test-only dependencies that need moving
  final testOnlyInWrongSection = result.testOnlyDependencies
      .where((DependencyInfo dep) =>
          dep.section == DependencySection.dependencies)
      .toList();

  if (testOnlyInWrongSection.isNotEmpty) {
    _printSubHeader(
        '${OutputConfig.testOnlyIndicator} Move to dev_dependencies');
    for (final dep in testOnlyInWrongSection) {
      _printDependency(dep, OutputConfig.testOnlyIndicator);
    }
    print('');
  }

  // Print unused dependencies
  if (result.unusedDependencies.isNotEmpty) {
    _printSubHeader('${OutputConfig.unusedIndicator} Unused Dependencies');
    for (final dep in result.unusedDependencies) {
      _printDependency(dep, OutputConfig.unusedIndicator);
    }
    print('');
  }

  // Print duplicates
  if (result.duplicates.isNotEmpty) {
    _printSubHeader('${OutputConfig.warningEmoji} Duplicate Dependencies');
    for (final duplicate in result.duplicates) {
      final versionInfo = duplicate.hasVersionConflict
          ? ' (${duplicate.dependenciesVersion} vs ${duplicate.devDependenciesVersion})'
          : '';
      _printWarning(
          '${duplicate.name}$versionInfo - ${duplicate.recommendationMessage}');
    }
    print('');
  }

  // Print summary
  _printSummary(result);
}