UNPKG

hierarchy-js

Version:

Elegant and lightweight library for working with data structures

28 lines (21 loc) 795 B
'use strict'; var _require = require('../services/common'), hasChildren = _require.hasChildren, childrenKey = _require.childrenKey; var createFlatHierarchy = function createFlatHierarchy(items, parent) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var flatList = []; items.forEach(function (item) { if (hasChildren(item)) { var key = childrenKey(); var children = createFlatHierarchy(item[key]); !options.saveExtractedChildren && delete item[key]; !options.excludeParent && children.unshift(item); flatList = flatList.concat(children); } else { !options.excludeParent && flatList.push(item); } }); return flatList; }; module.exports = { createFlatHierarchy: createFlatHierarchy };