import { curryN } from "@unboxing/function"; import { sliceArray } from "./slice"; interface SplitEvery { (a: number, list: string): string[]; (a: number, list: ArrayLike): T[][]; (a: number): { (list: string): string[]; (list: ArrayLike): T[][]; }; } /** * Splits a collection into slices of the specified length */ export const splitArrayEvery = curryN(2, (length: number, arr: ArrayLike = []) => { const result: T[][] = []; for (let i = 0; i < arr.length; i += length) { result.push(sliceArray(i, i + length, arr)); } return result; }) as SplitEvery