UNPKG

canner

Version:

Build CMS in few lines of code for different data sources

34 lines (29 loc) 656 B
import { forEach } from 'lodash'; export function flattenItems(items) { const fields = []; function loop(item, keyName = '') { if (item.keyName) { keyName = `${keyName}${keyName ? '.' : ''}${item.keyName}`; } if (item.items && !item.items.type) { forEach(item.items, item => { loop(item, keyName); }); } else if (item.items && item.items.type && item.items.items) { forEach(item.items.items, item => { loop(item, keyName); }) } else { fields.push({ ...item, keyName }); } } forEach(items, item => { loop(item, ''); }); return fields; }