Sha256: 63a3e77c74da22353e946ac95c765987c90f9b85de055089d9b47ec4cf8d9439

Contents?: true

Size: 1.04 KB

Versions: 62

Compression:

Stored size: 1.04 KB

Contents

var forOwn = require('./forOwn');
var isPlainObject = require('../lang/isPlainObject');

    /*
     * Helper function to flatten to a destination object.
     * Used to remove the need to create intermediate objects while flattening.
     */
    function flattenTo(obj, result, prefix, level) {
        forOwn(obj, function (value, key) {
            var nestedPrefix = prefix ? prefix + '.' + key : key;

            if (level !== 0 && isPlainObject(value)) {
                flattenTo(value, result, nestedPrefix, level - 1);
            } else {
                result[nestedPrefix] = value;
            }
        });

        return result;
    }

    /**
     * Recursively flattens an object.
     * A new object containing all the elements is returned.
     * If level is specified, it will only flatten up to that level.
     */
    function flatten(obj, level) {
        if (obj == null) {
            return {};
        }

        level = level == null ? -1 : level;
        return flattenTo(obj, {}, '', level);
    }

    module.exports = flatten;


Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.6.1 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.6 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.19 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.18 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.17 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.16 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.15 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.14 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.13 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.12 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.11 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.10 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.9 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.8 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.7 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.6 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.5 node_modules/bower/node_modules/mout/object/flatten.js
trusty-festivity-extension-2.5.4 node_modules/bower/node_modules/mout/object/flatten.js