export function groupByAndMap( items: T[], groupBy: (item: T) => string, map: (item: T) => U, ): Record { const groupings: Record = {} for (const item of items) { const key = groupBy(item) if (!groupings[key]) { groupings[key] = [] } groupings[key].push(map(item)) } return groupings }