{"version":3,"file":"keyValMap.js","sourceRoot":"","sources":["../../src/jsutils/keyValMap.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,SAAS,CACvB,IAAsB,EACtB,KAA0B,EAC1B,KAAqB;IAErB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { ObjMap } from './ObjMap.ts';\n\n/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * and a function to produce the values from each item in the array.\n * @internal\n * @example\n * ```ts\n * const phoneBook = [\n *   { name: 'Jon', num: '555-1234' },\n *   { name: 'Jenny', num: '867-5309' },\n * ];\n *\n * const phonesByName = keyValMap(\n *   phoneBook,\n *   (entry) => entry.name,\n *   (entry) => entry.num,\n * );\n *\n * phonesByName; // => { Jon: '555-1234', Jenny: '867-5309' }\n * ```\n */\nexport function keyValMap<T, V>(\n  list: ReadonlyArray<T>,\n  keyFn: (item: T) => string,\n  valFn: (item: T) => V,\n): ObjMap<V> {\n  const result = Object.create(null);\n  for (const item of list) {\n    result[keyFn(item)] = valFn(item);\n  }\n  return result;\n}\n"]}