prefetchAdvisoriesAndStatus method

Future<void> prefetchAdvisoriesAndStatus(
  1. Iterable<PackageId> packages
)

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);
}