map.ts

function getMapWithValueArray(array, key) {
  const map = new Map();
  if (Array.isArray(array)) {
    array.map((item) => {
      const keyValue = item[key];
      const currentValueInMap = map.get(keyValue);
      if (currentValueInMap) {
        currentValueInMap.push(item);
        map.set(keyValue, currentValueInMap);
      } else {
        map.set(keyValue, [item]);
      }
    });
  } else {
    throw 'getMapWithValueArray() array argument passed is not of type Array';
  }
  return map;
}

export { getMapWithValueArray };