import { pathResolve } from '@/utils/routerHelper' 
 | 
import type { RouteMeta } from 'vue-router' 
 | 
  
 | 
export const filterBreadcrumb = ( 
 | 
  routes: AppRouteRecordRaw[], 
 | 
  parentPath = '' 
 | 
): AppRouteRecordRaw[] => { 
 | 
  const res: AppRouteRecordRaw[] = [] 
 | 
  
 | 
  for (const route of routes) { 
 | 
    const meta = route?.meta as RouteMeta 
 | 
    if (meta.hidden && !meta.canTo) { 
 | 
      continue 
 | 
    } 
 | 
  
 | 
    const data: AppRouteRecordRaw = 
 | 
      !meta.alwaysShow && route.children?.length === 1 
 | 
        ? { ...route.children[0], path: pathResolve(route.path, route.children[0].path) } 
 | 
        : { ...route } 
 | 
  
 | 
    data.path = pathResolve(parentPath, data.path) 
 | 
  
 | 
    if (data.children) { 
 | 
      data.children = filterBreadcrumb(data.children, data.path) 
 | 
    } 
 | 
    if (data) { 
 | 
      res.push(data) 
 | 
    } 
 | 
  } 
 | 
  return res 
 | 
} 
 |