Stream fetchVersionPaths()

in src/get-dart/sdk_builds.dart/lib/src/dart_downloads.dart [75:95]


  Stream<String> fetchVersionPaths(String channel) async* {
    final prefix = p.join('channels', channel, _flavor) + '/';

    String? nextToken;

    do {
      final objects = await _api.objects.list(_dartChannel,
          prefix: prefix, pageToken: nextToken, delimiter: '/');
      nextToken = objects.nextPageToken;

      final prefixes = objects.prefixes;

      if (prefixes == null) {
        continue;
      }

      for (var item in prefixes) {
        yield item;
      }
    } while (nextToken != null);
  }