chunkList method

List<List<T>> chunkList(
  1. List<T> data
)

Chunks a large list into smaller parts

Implementation

List<List<T>> chunkList(List<T> data) {
  final chunks = <List<T>>[];

  // Calculate the chunk size in items
  // Assume each item is roughly 100 bytes
  final itemsPerChunk = (chunkSize / 100).ceil();

  // Calculate the number of chunks
  final numChunks = (data.length / itemsPerChunk).ceil();

  // Split the data into chunks
  for (int i = 0; i < numChunks; i++) {
    final start = i * itemsPerChunk;
    final end = (i + 1) * itemsPerChunk;
    final chunk = data.sublist(start, end > data.length ? data.length : end);
    chunks.add(chunk);
  }

  logger?.info(
    'Chunked list of ${data.length} items into ${chunks.length} chunks',
  );
  return chunks;
}