/** * Splits an array into ordered chunks of `size` elements. */ export function chunkArray(items: T[], size: number): T[][] { if (!Number.isInteger(size) || size <= 0) { throw new Error('Chunk size must be a positive integer'); } if (items.length === 0) { return []; } const chunks: T[][] = []; for (let i = 0; i < items.length; i += size) { chunks.push(items.slice(i, i + size)); } return chunks; }