```typescript
export function chunk<T>(items: readonly T[], size: number): T[][] {
    if (size < 1 || !Number.isInteger(size)) throw new Error('Size must be a positive integer');
  
    const result: T[][] = [];
  for (let i = 0; i < items.length; i += size) {
        result.push([...items.slice(i, i + size)]);
  }
    return result;
};
```