source dump of claude code
at main 18 lines 511 B view raw
1/** 2 * https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.groupby 3 */ 4export function objectGroupBy<T, K extends PropertyKey>( 5 items: Iterable<T>, 6 keySelector: (item: T, index: number) => K, 7): Partial<Record<K, T[]>> { 8 const result = Object.create(null) as Partial<Record<K, T[]>> 9 let index = 0 10 for (const item of items) { 11 const key = keySelector(item, index++) 12 if (result[key] === undefined) { 13 result[key] = [] 14 } 15 result[key].push(item) 16 } 17 return result 18}