foop
Version:
interfaces that describe their intentions.
54 lines (48 loc) • 3.39 kB
JavaScript
var newMap = require('../construct/map')
var hasOwnProperty = require('../util/hasOwnProperty')
/**
* Object into a Map
* @since 5.0.0-beta.6
* @memberOf cast
*
* @name objToMap
* @alias objectToMap
*
* @param {*} obj cast to Map
* @return {Map} Map(x)
*
* Object.keys(obj).forEach(key => map.set(key, obj[key]))
* @TODO use `forOwn`
* @TODO can just use obj.hasOwnProperty again?
*
* {@link https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#Converting_an_Object_to_a_Map mozilla-obj-to-map}
* @see {@link mozilla-obj-to-map}
*
* @example
*
* const obj = {eh: 0}
* const map = objToMap(obj)
*
* map.has('eh')
* //=> true
*
* map.get('eh')
* //=> 0
*
* map.size
* //=> 1
*
*/
var objToMap = function (obj) {
var map = newMap()
// eslint-disable-next-line
for (var prop in obj) { hasOwnProperty(obj, prop) && map.set(prop, obj[prop]); }
return map
}
/**
* @TODO
* const map = pipe(entries, newMap)
* const map = newMap(Object.entries(obj))
*/
module.exports = objToMap
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqVG9NYXAuanMiLCJzb3VyY2VzIjpbIm9ialRvTWFwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG5ld01hcCA9IHJlcXVpcmUoJy4uL2NvbnN0cnVjdC9tYXAnKVxuY29uc3QgaGFzT3duUHJvcGVydHkgPSByZXF1aXJlKCcuLi91dGlsL2hhc093blByb3BlcnR5JylcblxuLyoqXG4gKiBPYmplY3QgaW50byBhIE1hcFxuICogQHNpbmNlIDUuMC4wLWJldGEuNlxuICogQG1lbWJlck9mIGNhc3RcbiAqXG4gKiBAbmFtZSBvYmpUb01hcFxuICogQGFsaWFzIG9iamVjdFRvTWFwXG4gKlxuICogQHBhcmFtICB7Kn0gb2JqIGNhc3QgdG8gTWFwXG4gKiBAcmV0dXJuIHtNYXB9IE1hcCh4KVxuICpcbiAqIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChrZXkgPT4gbWFwLnNldChrZXksIG9ialtrZXldKSlcbiAqIEBUT0RPIHVzZSBgZm9yT3duYFxuICogQFRPRE8gY2FuIGp1c3QgdXNlIG9iai5oYXNPd25Qcm9wZXJ0eSBhZ2Fpbj9cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2VudHJpZXMjQ29udmVydGluZ19hbl9PYmplY3RfdG9fYV9NYXAgbW96aWxsYS1vYmotdG8tbWFwfVxuICogQHNlZSB7QGxpbmsgbW96aWxsYS1vYmotdG8tbWFwfVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgY29uc3Qgb2JqID0ge2VoOiAwfVxuICogICAgY29uc3QgbWFwID0gb2JqVG9NYXAob2JqKVxuICpcbiAqICAgIG1hcC5oYXMoJ2VoJylcbiAqICAgIC8vPT4gdHJ1ZVxuICpcbiAqICAgIG1hcC5nZXQoJ2VoJylcbiAqICAgIC8vPT4gMFxuICpcbiAqICAgIG1hcC5zaXplXG4gKiAgICAvLz0+IDFcbiAqXG4gKi9cbmNvbnN0IG9ialRvTWFwID0gb2JqID0+IHtcbiAgY29uc3QgbWFwID0gbmV3TWFwKClcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgZm9yIChsZXQgcHJvcCBpbiBvYmopIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkgJiYgbWFwLnNldChwcm9wLCBvYmpbcHJvcF0pO1xuXG4gIHJldHVybiBtYXBcbn1cblxuLyoqXG4gKiBAVE9ET1xuICogY29uc3QgbWFwID0gcGlwZShlbnRyaWVzLCBuZXdNYXApXG4gKiBjb25zdCBtYXAgPSBuZXdNYXAoT2JqZWN0LmVudHJpZXMob2JqKSlcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IG9ialRvTWFwXG4iXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztBQUMxQ0EsR0FBSyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUN4REEsR0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFBLEdBQUcsQ0FBQSxDQUFDLEFBQUc7RUFDdEJBLEdBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxFQUFFOzs7RUFHcEIsS0FBS0MsR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBQSxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUE7O0VBRTVFLE9BQU8sR0FBRztDQUNYOzs7Ozs7OztBQVFELE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFBUTsifQ==