UNPKG

foop

Version:

interfaces that describe their intentions.

54 lines (48 loc) 3.39 kB
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==