UNPKG

foop

Version:

interfaces that describe their intentions.

50 lines (46 loc) 3.05 kB
var ArrayFrom = require('../../util/from') var reduceArrayToObj = require('./reduceArrayToObj') // @TODO cask index if needed var keyValReducer = function (acc, ref) { var key = ref[0]; var value = ref[1]; acc[key] = value return acc } /** * @desc Map -> Object * @since 4.0.0 * @version 5.0.0 <- moved from /reduce to loop/reduce * * @param {Map} map map to reduce, calls entries, turns into an array, then object * @return {Object} reduced object * * @see ArrayFrom * * @example * * var emptyMap = new Map() * reduce(emptyMap) * //=> {} * * @example * * var map = new Map() * map.set('eh', 1) * reduce(map) * //=> {eh: 1} * */ module.exports = function (map) { // only need to do this if we actually have values in our Map if (map.size === 0) { return {} } else { return reduceArrayToObj( ArrayFrom(map.entries()), keyValReducer ) } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlTWFwLmpzIiwic291cmNlcyI6WyJyZWR1Y2VNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQXJyYXlGcm9tID0gcmVxdWlyZSgnLi4vLi4vdXRpbC9mcm9tJylcbmNvbnN0IHJlZHVjZUFycmF5VG9PYmogPSByZXF1aXJlKCcuL3JlZHVjZUFycmF5VG9PYmonKVxuXG4vLyBAVE9ETyBjYXNrIGluZGV4IGlmIG5lZWRlZFxuY29uc3Qga2V5VmFsUmVkdWNlciA9IChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICBhY2Nba2V5XSA9IHZhbHVlXG4gIHJldHVybiBhY2Ncbn1cblxuLyoqXG4gKiBAZGVzYyBNYXAgLT4gT2JqZWN0XG4gKiBAc2luY2UgNC4wLjBcbiAqIEB2ZXJzaW9uIDUuMC4wIDwtIG1vdmVkIGZyb20gL3JlZHVjZSB0byBsb29wL3JlZHVjZVxuICpcbiAqIEBwYXJhbSB7TWFwfSBtYXAgbWFwIHRvIHJlZHVjZSwgY2FsbHMgZW50cmllcywgdHVybnMgaW50byBhbiBhcnJheSwgdGhlbiBvYmplY3RcbiAqIEByZXR1cm4ge09iamVjdH0gcmVkdWNlZCBvYmplY3RcbiAqXG4gKiBAc2VlIEFycmF5RnJvbVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgdmFyIGVtcHR5TWFwID0gbmV3IE1hcCgpXG4gKiAgICByZWR1Y2UoZW1wdHlNYXApXG4gKiAgICAvLz0+IHt9XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICB2YXIgbWFwID0gbmV3IE1hcCgpXG4gKiAgICBtYXAuc2V0KCdlaCcsIDEpXG4gKiAgICByZWR1Y2UobWFwKVxuICogICAgLy89PiB7ZWg6IDF9XG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IG1hcCA9PiB7XG4gIC8vIG9ubHkgbmVlZCB0byBkbyB0aGlzIGlmIHdlIGFjdHVhbGx5IGhhdmUgdmFsdWVzIGluIG91ciBNYXBcbiAgaWYgKG1hcC5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIHt9XG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuIHJlZHVjZUFycmF5VG9PYmooXG4gICAgICBBcnJheUZyb20obWFwLmVudHJpZXMoKSksXG4gICAgICBrZXlWYWxSZWR1Y2VyXG4gICAgKVxuICB9XG59XG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUM1Q0EsR0FBSyxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQzs7O0FBR3REQSxHQUFLLENBQUMsYUFBYSxHQUFHLFNBQUEsQ0FBQyxHQUFHLEVBQUUsR0FBQSxBQUFJLEFBQU8sQUFBQyxFQUFFLEFBQUcsQ0FBaEI7TUFBQSxHQUFHLFVBQUU7TUFBQSxLQUFLO0FBQU87RUFDNUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUs7RUFDaEIsT0FBTyxHQUFHO0NBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJELE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxHQUFHLENBQUEsQ0FBQyxBQUFHOztFQUV0QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO0lBQ2xCLE9BQU8sRUFBRTtHQUNWO09BQ0k7SUFDSCxPQUFPLGdCQUFnQjtNQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO01BQ3hCLGFBQWE7S0FDZDtHQUNGO0NBQ0Y7In0=