import { MenuItemType } from '../types'; import logger from './log'; export const menuGenerator = (arr: MenuItemType[]) => { const tree: MenuItemType[] = []; try { const data: { [key: string]: MenuItemType } = {}; arr.forEach((item) => { const newData = { ...item, children: [] }; data[item.pk] = newData; }); Object.values(data).forEach((item) => { if (item.parent_pk) { data[item.parent_pk].children.push(item); } else { tree.push(item); } }); } catch (error) { logger.error(error, 'menuGenerator'); } return tree; };