Files
probo/packages/helpers/src/array.ts
Jonathan faf1ce0eb9 Add alias for imports
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2025-06-13 13:23:41 -07:00

31 lines
735 B
TypeScript

export function times<T>(n: number, cb: (i: number) => T): T[] {
return Array.from({ length: n }, (_, i) => cb(i));
}
export function groupBy<T>(
arr: T[],
key: (item: T) => string,
): Record<string, T[]> {
return arr.reduce(
(acc, item) => {
const k = key(item);
if (!acc[k]) {
acc[k] = [];
}
acc[k].push(item);
return acc;
},
{} as Record<string, T[]>,
);
}
/**
* Check that a value is empty (null, undefined, empty string, empty array, empty object)
*/
export function isEmpty(v: unknown): boolean {
if (Array.isArray(v)) {
return v.find((v) => !isEmpty(v)) === undefined;
}
return !v;
}