UNPKG

gofigure

Version:

Configuration library for node

20 lines (16 loc) 553 B
const _ = require('lodash'); const getFlattenedObject = (obj) => { const traverse = (currentPath, objToTraverse) => Object.keys(objToTraverse).reduce((keyMap, key) => { const val = objToTraverse[key]; const propPath = currentPath ? [currentPath, key].join('.') : key; if (!_.isPlainObject(val) || _.isEmpty(val)) { return Object.assign(keyMap, { [propPath]: val }); } return _.merge(keyMap, traverse(propPath, val)); }, {}); return traverse(null, obj); }; module.exports = { getFlattenedObject, };