Files
core2026/app/gateway-frontend/src/router/index.ts
T
Hide_D a43f3e4e0a perf: 프런트엔드 import 경계를 세분화
Gateway 화면을 route 단위로 지연 로딩하고 common runtime import를 실제 소유 leaf export로 분리한다.\n\npackage boundary와 route loading 회귀 테스트로 root barrel 재유입을 차단한다.
2026-08-21 01:45:20 +00:00

107 lines
3.3 KiB
TypeScript

import { createRouter, createWebHistory } from 'vue-router';
const HomeView = () => import('../views/HomeView.vue');
const LobbyView = () => import('../views/LobbyView.vue');
const AdminOverviewView = () => import('../views/AdminOverviewView.vue');
const AdminView = () => import('../views/AdminView.vue');
const ServerOperationsView = () => import('../views/ServerOperationsView.vue');
const AccountView = () => import('../views/AccountView.vue');
const OAuthCallbackView = () => import('../views/OAuthCallbackView.vue');
const SignupView = () => import('../views/SignupView.vue');
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomeView,
},
{
path: '/signup',
name: 'signup',
component: SignupView,
},
{
path: '/lobby',
name: 'lobby',
component: LobbyView,
},
{
path: '/admin',
name: 'admin',
component: AdminOverviewView,
},
{
path: '/admin/users',
name: 'admin-users',
component: AdminView,
props: { section: 'users' },
},
{
path: '/admin/servers',
name: 'admin-servers',
component: AdminView,
props: { section: 'servers' },
},
{
path: '/admin/servers/:profileName',
name: 'admin-server',
component: AdminView,
props: (route) => ({ section: 'servers', profileName: route.params.profileName }),
},
{
path: '/admin/servers/:profileName/version',
name: 'admin-server-version',
component: ServerOperationsView,
props: (route) => ({ mode: 'version', profileName: route.params.profileName }),
},
{
path: '/admin/servers/:profileName/scenario',
name: 'admin-server-scenario',
component: ServerOperationsView,
props: (route) => ({ mode: 'scenario', profileName: route.params.profileName }),
},
{
path: '/admin/servers/:profileName/cancel',
name: 'admin-server-cancel',
component: ServerOperationsView,
props: (route) => ({ mode: 'cancel', profileName: route.params.profileName }),
},
{
path: '/admin/system',
name: 'admin-system',
component: AdminView,
props: { section: 'system' },
},
{
path: '/admin/audit',
name: 'admin-audit',
component: AdminView,
props: { section: 'audit' },
},
{
path: '/admin/releases',
name: 'admin-releases',
component: ServerOperationsView,
props: { mode: 'gateway' },
},
{
path: '/admin/server-operations',
redirect: (to) => ({ path: '/admin/servers', query: to.query }),
},
{
path: '/account',
name: 'account',
component: AccountView,
},
{
path: '/oauth/callback',
name: 'oauth-callback',
component: OAuthCallbackView,
},
],
});
export default router;