splitUploadFileBatches<T> function

List<List<T>> splitUploadFileBatches<T>(
  1. List<T> files,
  2. int? batchSize
)

Splits files into upload batches of at most batchSize items.

When batchSize is null, returns a single batch containing all files.

Implementation

List<List<T>> splitUploadFileBatches<T>(List<T> files, int? batchSize) {
  if (batchSize == null) {
    return [files];
  }
  final batches = <List<T>>[];
  for (var i = 0; i < files.length; i += batchSize) {
    final end = i + batchSize < files.length ? i + batchSize : files.length;
    batches.add(files.sublist(i, end));
  }
  return batches;
}