mirror of
https://github.com/OliveTin/OliveTin
synced 2025-12-19 12:35:32 +00:00
20 lines
433 B
JavaScript
20 lines
433 B
JavaScript
/**
|
|
* Create a map with unique sets of values from a record.
|
|
*
|
|
* @template T
|
|
* @param {Record<string, T | T[]>} record
|
|
* @returns {Map<string, Set<T>>}
|
|
*/
|
|
export default function createMapWithSet(record) {
|
|
/** @type {Map<string, Set<T>>} */
|
|
const map = new Map();
|
|
|
|
for (const [key, value] of Object.entries(record)) {
|
|
const list = Array.isArray(value) ? value : [value];
|
|
|
|
map.set(key, new Set(list));
|
|
}
|
|
|
|
return map;
|
|
}
|