{"version":3,"file":"group-by.mjs","names":["groups"],"sources":["../src/group-by.ts"],"sourcesContent":["export function groupBy<T extends object, K extends number | string>(\n\tvalues: ReadonlyArray<T>,\n\tkeys: (value: T) => Array<K> | K,\n): Record<K, Array<T>> {\n\tconst groups = {} as Record<K, Array<T>>;\n\n\tfunction set(groups: Record<K, Array<T>>, id: K, value: T) {\n\t\tif (!Object.prototype.hasOwnProperty.call(groups, id)) {\n\t\t\tgroups[id] = [value];\n\t\t} else {\n\t\t\tgroups[id].push(value);\n\t\t}\n\t}\n\n\tvalues.forEach((value) => {\n\t\tconst ids = keys(value);\n\t\tif (Array.isArray(ids)) {\n\t\t\tids.forEach((id) => {\n\t\t\t\tset(groups, id, value);\n\t\t\t});\n\t\t} else {\n\t\t\tset(groups, ids, value);\n\t\t}\n\t});\n\n\treturn groups;\n}\n\nexport function groupByToMap<T extends object, K>(\n\tvalues: ReadonlyArray<T>,\n\tkeys: (value: T) => Array<K> | K,\n): Map<K, Array<T>> {\n\tconst groups = new Map<K, Array<T>>();\n\n\tfunction set(groups: Map<K, Array<T>>, id: K, value: T) {\n\t\tif (!groups.has(id)) {\n\t\t\tgroups.set(id, [value]);\n\t\t} else {\n\t\t\tgroups.get(id)!.push(value);\n\t\t}\n\t}\n\n\tvalues.forEach((value) => {\n\t\tconst ids = keys(value);\n\t\tif (Array.isArray(ids)) {\n\t\t\tids.forEach((id) => {\n\t\t\t\tset(groups, id, value);\n\t\t\t});\n\t\t} else {\n\t\t\tset(groups, ids, value);\n\t\t}\n\t});\n\n\treturn groups;\n}\n"],"mappings":";AAAA,SAAgB,QACf,QACA,MACsB;CACtB,MAAM,SAAS,EAAE;CAEjB,SAAS,IAAI,UAA6B,IAAO,OAAU;AAC1D,MAAI,CAAC,OAAO,UAAU,eAAe,KAAKA,UAAQ,GAAG,CACpD,UAAO,MAAM,CAAC,MAAM;MAEpB,UAAO,IAAI,KAAK,MAAM;;AAIxB,QAAO,SAAS,UAAU;EACzB,MAAM,MAAM,KAAK,MAAM;AACvB,MAAI,MAAM,QAAQ,IAAI,CACrB,KAAI,SAAS,OAAO;AACnB,OAAI,QAAQ,IAAI,MAAM;IACrB;MAEF,KAAI,QAAQ,KAAK,MAAM;GAEvB;AAEF,QAAO;;AAGR,SAAgB,aACf,QACA,MACmB;CACnB,MAAM,yBAAS,IAAI,KAAkB;CAErC,SAAS,IAAI,UAA0B,IAAO,OAAU;AACvD,MAAI,CAACA,SAAO,IAAI,GAAG,CAClB,UAAO,IAAI,IAAI,CAAC,MAAM,CAAC;MAEvB,UAAO,IAAI,GAAG,CAAE,KAAK,MAAM;;AAI7B,QAAO,SAAS,UAAU;EACzB,MAAM,MAAM,KAAK,MAAM;AACvB,MAAI,MAAM,QAAQ,IAAI,CACrB,KAAI,SAAS,OAAO;AACnB,OAAI,QAAQ,IAAI,MAAM;IACrB;MAEF,KAAI,QAAQ,KAAK,MAAM;GAEvB;AAEF,QAAO"}