var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; import { createContext } from 'react'; import { isEmpty, head, map } from 'lodash'; import LRU from 'lru-cache'; export const urlCacheData = new LRU({}); export const UserMenuContext = createContext(null); //获取首个路由path export function getPath(menu) { let path; (function getRoute(menu = []) { if (isEmpty(menu.routes)) { path = menu.path; } else { getRoute(head(menu.routes)); } })(head(menu)); return path; } //展开菜单 export function analysisTree(menus, key) { if (isEmpty(menus)) { return []; } const menu = new Map(); const convertMenu = (list) => { list.forEach((item) => { const { routes = [] } = item, other = __rest(item, ["routes"]); menu.set(item[key], other); if (!isEmpty(routes)) { convertMenu(routes); } }); }; convertMenu(menus); return map(Array.from(menu.values()), key); }