{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["export type TGetMapFromObjArgs = Parameters<typeof getMapFromObj>;\r\n\r\nexport type TGetMapFromObjReturn = ReturnType<typeof getMapFromObj>;\r\n\r\n/**\r\n * Gets a Map from object\r\n * @template K,V\r\n * @param {Record<string, V>} [obj={}] Source object\r\n * @param {(key: string, value: V, index: number) => boolean} [getFiltered] Filter function for each entry\r\n * @returns {Map<K, V>} Resulting map\r\n * @throws {TypeError} getMapFromObj: obj must be a plain object\r\n * @throws {TypeError} getMapFromObj: getFiltered must be a function\r\n * @example\r\n * // How to convert an object to ES6 Map and pass only number values?\r\n * const sourceObj = { hello: \"world\", goodbye: 1 };\r\n * const targetMap = getMapFromObj<string, number>(sourceObj as any, (_k, v) => typeof v === \"number\");\r\n * console.log(targetMap); // => Map { \"goodbye\" => 1 }\r\n */\r\nexport const getMapFromObj = <K extends string = string, V = unknown>(\r\n  obj: Record<string, V> = {},\r\n  getFiltered: (key: string, value: V, index: number) => boolean = () => true\r\n): Map<K, V> => {\r\n\r\n  if (obj === null || typeof obj !== \"object\" || Array.isArray(obj)) {\r\n    throw new TypeError(\"getMapFromObj: obj must be a plain object\");\r\n  }\r\n  if (typeof getFiltered !== \"function\") {\r\n    throw new TypeError(\"getMapFromObj: getFiltered must be a function\");\r\n  }\r\n\r\n  const map = new Map<K, V>();\r\n  Object.entries(obj).forEach(([ key, value ], index) => {\r\n    if (getFiltered(key, value, index)) {\r\n      map.set(key as K, value);\r\n    }\r\n  });\r\n\r\n  return map;\r\n};\r\n"],"names":["getMapFromObj","obj","getFiltered","Array","isArray","TypeError","map","Map","Object","entries","forEach","key","value","index","set"],"mappings":";;;;;;;;;;;;;;AAkBO,MAAMA,cAAgBA,CAC3BC,IAAyB,CAAA,EACzBC,YAAiEA,IAAM,QAGvE,GAAID,MAAQ,aAAeA,MAAQ,UAAYE,MAAMC,QAAQH,KAC3D,MAAM,IAAII,UAAU,6CAEtB,UAAWH,cAAgB,WACzB,MAAM,IAAIG,UAAU,iDAGtB,MAAMC,IAAM,IAAIC,IAChBC,OAAOC,QAAQR,KAAKS,QAAQ,EAAGC,IAAKC,OAASC,SAC3C,GAAIX,YAAYS,IAAKC,MAAOC,OAC1BP,IAAIQ,IAAIH,IAAUC,SAItB,OAAON"}