withProgressSync<T, R> method

List<R> withProgressSync<T, R>({
  1. required List<T> items,
  2. required R process(
    1. T item,
    2. int index
    ),
  3. String? message,
  4. String? completionMessage,
})

Process items synchronously with a progress bar

Implementation

List<R> withProgressSync<T, R>({
  required List<T> items,
  required R Function(T item, int index) process,
  String? message,
  String? completionMessage,
}) {
  final progress = ConsoleProgressBar(total: items.length, message: message);
  progress.start();

  final results = <R>[];

  for (int i = 0; i < items.length; i++) {
    final result = process(items[i], i);
    results.add(result);
    progress.tick();
  }

  progress.complete(completionMessage);
  return results;
}