diagnose method

DiagnosisResult diagnose(
  1. PackageMetadata meta
)

Implementation

DiagnosisResult diagnose(PackageMetadata meta) {
  final signals = _signals(meta);
  final results = _runAll(signals, meta);
  final score = _score(signals, results);

  final sorted = [...results]..sort((a, b) {
      final wa = signals
          .firstWhere((s) => s.id == a.signalId, orElse: () => _dummy)
          .weight;
      final wb = signals
          .firstWhere((s) => s.id == b.signalId, orElse: () => _dummy)
          .weight;
      return wb.compareTo(wa);
    });

  return DiagnosisResult(
    packageName: meta.name,
    currentVersion: meta.currentVersion,
    latestVersion: meta.latestStableVersion ?? meta.latestVersion,
    riskScore: score,
    riskLevel: RiskLevel.fromScore(score),
    signals: sorted,
    recommendations: _recommendations(meta, sorted, score),
    verification: meta.verification,
    repoHealth: meta.repoHealth,
    isFromCache: meta.isFromCache,
  );
}