foop
Version:
interfaces that describe their intentions.
44 lines (39 loc) • 2.79 kB
JavaScript
var ArrayFrom = require('../util/from')
var castIteratorToArray = require('../cast/iteratorToArray')
/**
* @desc Map -> Object
* @since 4.0.0
*
* @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) {
var reduced = {}
// only need to do this if we actually have values in our Map
if (map.size !== 0) {
reduced = ArrayFrom(map.entries()).reduce(function (acc, ref) {
var key = ref[0];
var value = ref[1];
acc[key] = value
return acc
}, reduced)
}
return reduced
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlLmpzIiwic291cmNlcyI6WyJyZWR1Y2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQXJyYXlGcm9tID0gcmVxdWlyZSgnLi4vdXRpbC9mcm9tJylcbmNvbnN0IGNhc3RJdGVyYXRvclRvQXJyYXkgPSByZXF1aXJlKCcuLi9jYXN0L2l0ZXJhdG9yVG9BcnJheScpXG5cbi8qKlxuICogQGRlc2MgTWFwIC0+IE9iamVjdFxuICogQHNpbmNlIDQuMC4wXG4gKlxuICogQHBhcmFtIHtNYXB9IG1hcCBtYXAgdG8gcmVkdWNlLCBjYWxscyBlbnRyaWVzLCB0dXJucyBpbnRvIGFuIGFycmF5LCB0aGVuIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSByZWR1Y2VkIG9iamVjdFxuICpcbiAqIEBzZWUgQXJyYXlGcm9tXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICB2YXIgZW1wdHlNYXAgPSBuZXcgTWFwKClcbiAqICAgIHJlZHVjZShlbXB0eU1hcClcbiAqICAgIC8vPT4ge31cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgIHZhciBtYXAgPSBuZXcgTWFwKClcbiAqICAgIG1hcC5zZXQoJ2VoJywgMSlcbiAqICAgIHJlZHVjZShtYXApXG4gKiAgICAvLz0+IHtlaDogMX1cbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gbWFwID0+IHtcbiAgbGV0IHJlZHVjZWQgPSB7fVxuXG4gIC8vIG9ubHkgbmVlZCB0byBkbyB0aGlzIGlmIHdlIGFjdHVhbGx5IGhhdmUgdmFsdWVzIGluIG91ciBNYXBcbiAgaWYgKG1hcC5zaXplICE9PSAwKSB7XG4gICAgcmVkdWNlZCA9IEFycmF5RnJvbShtYXAuZW50cmllcygpKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBhY2Nba2V5XSA9IHZhbHVlXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgcmVkdWNlZClcbiAgfVxuXG4gIHJldHVybiByZWR1Y2VkXG59XG4iXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFDekNBLEdBQUssQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QjlELE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxHQUFHLENBQUEsQ0FBQyxBQUFHO0VBQ3RCQyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUU7OztFQUdoQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO0lBQ2xCLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQUEsQ0FBQyxHQUFHLEVBQUUsR0FBQSxBQUFJLEFBQU8sQUFBQyxFQUFFLEFBQUcsQ0FBaEI7VUFBQSxHQUFHLFVBQUU7VUFBQSxLQUFLO0FBQU87TUFDaEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUs7TUFDaEIsT0FBTyxHQUFHO0tBQ1gsRUFBRSxPQUFPLENBQUM7R0FDWjs7RUFFRCxPQUFPLE9BQU87Q0FDZjsifQ==