content/frontend/shared/toc/flatten_items.js (10 lines of code) (raw):

// eslint-disable-next-line import/prefer-default-export export const flattenItems = (items = [], level = 0) => { if (!items || !items.length) { return items; } return items.reduce( (acc, { items: children, ...item }) => acc.concat([{ ...item, level }]).concat(flattenItems(children, level + 1)), [], ); };