prefetchAdvisoriesAndStatus method
Prefetches the status and advisories for packages in parallel.
Implementation
Future<void> prefetchAdvisoriesAndStatus(Iterable<PackageId> packages) async {
final futures = <Future<Object?>>[];
for (final id in packages) {
futures.add(
id.source.status(
id.toRef(),
id.version,
this,
maxAge: const Duration(days: 3),
),
);
final advisoriesFuture = id.source.getAdvisoriesForPackageVersion(
id,
this,
const Duration(days: 3),
);
if (advisoriesFuture != null) {
futures.add(advisoriesFuture);
}
}
await Future.wait(futures);
}