merge-route-modules.ts 689 B

12345678910111213141516171819202122232425262728
  1. import type { RouteRecordRaw } from 'vue-router';
  2. // 定义模块类型
  3. interface RouteModuleType {
  4. default: RouteRecordRaw[];
  5. }
  6. /**
  7. * 合并动态路由模块的默认导出
  8. * @param routeModules 动态导入的路由模块对象
  9. * @returns 合并后的路由配置数组
  10. */
  11. function mergeRouteModules(
  12. routeModules: Record<string, unknown>,
  13. ): RouteRecordRaw[] {
  14. const mergedRoutes: RouteRecordRaw[] = [];
  15. for (const routeModule of Object.values(routeModules)) {
  16. const moduleRoutes = (routeModule as RouteModuleType)?.default ?? [];
  17. mergedRoutes.push(...moduleRoutes);
  18. }
  19. return mergedRoutes;
  20. }
  21. export { mergeRouteModules };
  22. export type { RouteModuleType };