start method

Finishers start(
  1. Iterable<String> entries,
  2. void onFinish()
)

Implementation

Finishers start(Iterable<String> entries, void Function() onFinish) {
  final mapped = entries.toList().asMap();
  final loadingItems = mapped.entries.map((e) {
    return Line(
      key: e.key,
      frames: frames,
      text: e.value,
    );
  }).toList();

  final streams = loadingItems.map(
    (e) => _stream(
      e.key,
      isDone: e.isDone,
    ),
  );

  final finishers = Finishers(
    loadingItems.map((e) {
      return FinisherImpl(finish: e.finish);
    }),
  );

  final group = StreamGroup.merge(streams);

  _print(
    group,
    loadingItems,
    onFinish,
  ).ignore();

  return finishers;
}