# @eciol/router

用于配置路由

## Usage

```ts
// main.ts
import { InitRouter, setupRouter, setupRouterGuard } from '@eciol/router';
async function bootstrap() {
  const app = createApp(App);

  const router = InitRouter(import.meta.env.VITE_PUBLIC_PATH, {
    routes: basicRoutes,
  });
  // Configure routing
  // 配置路由
  setupRouter(app);

  // router-guard
  // 路由守卫
  setupRouterGuard(router);
  app.mount('#app');
}

bootstrap();
```

## Export

```ts
/**
 * @description 配置路由
 */
export { 
  EXCEPTION_COMPONENT, // 异常组件 
  InitRouter,  // 初始化路由函数
  PAGE_NOT_FOUND_NAME,  // 404路由name
  PARENT_LAYOUT_NAME,   // 父级路由name
  REDIRECT_NAME, // 重定向路由name
  flatMultiLevelRoutes, // 将多级路由转换为 2 级路由
  getAllParentPath,  // 获取所有的父级路径
  getChildrenMenus, // 获取子菜单 
  getCurrentParentPath,  // 获取当前路由的父级路由路径
  getMenus, // 获取所有菜单
  getParentLayout,  // 获取父级layout
  getShallowMenus,  // 获取一级菜单
  resetRouter,  // 重置路由
  router,  // router实例
  setupRouter, // 初始化路由
  setupRouterGuard,  // 初始化路由守卫
  transformMenuModule, // Parsing the menu module
  transformObjToRoute, // 将后端返回的对象变成路由对象
  transformRouteToMenu, // 将路由转换成菜单
};
```
