fetchAll method

Future<Map<String, PackageMetadata>> fetchAll(
  1. Map<String, Version> packages, {
  2. bool fresh = false,
})

Fetches metadata for all packages concurrently.

Entries that cannot be resolved (404, parse error) are silently excluded from the result map.

Implementation

Future<Map<String, PackageMetadata>> fetchAll(
  Map<String, Version> packages, {
  bool fresh = false,
}) async {
  final entries = await Future.wait(
    packages.entries.map((e) async {
      final m =
          await fetch(name: e.key, currentVersion: e.value, fresh: fresh);
      return MapEntry(e.key, m);
    }),
  );
  return {
    for (final e in entries)
      if (e.value != null) e.key: e.value!
  };
}