UNPKG

obj-entries

Version:

Object.entries and Object.fromEntries deep version

41 lines (34 loc) 712 B
const _ = require('lodash'); const entries = obj => _ .toPairs(obj) .map(entry => entry .map((value) => { if (value.constructor.name === 'Object') { return entries(value); } return value; })); const fromEntries = (array) => { const obj = _.fromPairs(array); return Object.keys(obj) .reduce( (entry, key) => { const value = obj[key]; if (_.isArray(value) && _.every(value, _.isArray)) { return { ...entry, [key]: fromEntries(value), }; } return { ...entry, [key]: value, }; }, {}, ); }; module.exports = { entries, fromEntries, };