UNPKG

canner

Version:

Build CMS in few lines of code for different data sources

43 lines (34 loc) 1.13 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.flattenItems = flattenItems; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _lodash = require("lodash"); function flattenItems(items) { var fields = []; function loop(item) { var keyName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; if (item.keyName) { keyName = "".concat(keyName).concat(keyName ? '.' : '').concat(item.keyName); } if (item.items && !item.items.type) { (0, _lodash.forEach)(item.items, function (item) { loop(item, keyName); }); } else if (item.items && item.items.type && item.items.items) { (0, _lodash.forEach)(item.items.items, function (item) { loop(item, keyName); }); } else { fields.push((0, _objectSpread2.default)({}, item, { keyName: keyName })); } } (0, _lodash.forEach)(items, function (item) { loop(item, ''); }); return fields; }