4
0

createMapWithSet.mjs 433 B

12345678910111213141516171819
  1. /**
  2. * Create a map with unique sets of values from a record.
  3. *
  4. * @template T
  5. * @param {Record<string, T | T[]>} record
  6. * @returns {Map<string, Set<T>>}
  7. */
  8. export default function createMapWithSet(record) {
  9. /** @type {Map<string, Set<T>>} */
  10. const map = new Map();
  11. for (const [key, value] of Object.entries(record)) {
  12. const list = Array.isArray(value) ? value : [value];
  13. map.set(key, new Set(list));
  14. }
  15. return map;
  16. }