diagnose method
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,
);
}