Files
nexus/frontend/src/main.ts
T
AzuTear f5552218bc
CI - Build & Test / Backend (.NET) (push) Successful in 42s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m46s
CI - Build & Test / Security Check (push) Successful in 3s
CI - Build & Test / Deploy Nexus (push) Successful in 56s
feat: ship agent-first mission control v0.2.57
2026-07-31 22:39:47 +02:00

39 lines
1012 B
TypeScript

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import { VueQueryPlugin } from '@tanstack/vue-query'
import App from './App.vue'
import router from './router'
import { queryClient } from './api/queryClient'
import { useAuthStore } from './stores/auth'
import { startBrowserTelemetry } from './services/browserTelemetry'
import { startDomainEventSync } from './services/domainEvents'
import './assets/main.css'
import './assets/nexus-tokens.css'
import './assets/nexus-components.css'
const pinia = createPinia()
router.beforeEach(async to => {
const auth = useAuthStore(pinia)
await auth.initialize()
if (to.meta.public) {
return to.name === 'Login' && auth.isAuthenticated ? '/dashboard' : true
}
if (!auth.isAuthenticated) {
return { name: 'Login', query: { redirect: to.fullPath } }
}
return true
})
createApp(App)
.use(pinia)
.use(VueQueryPlugin, { queryClient })
.use(router)
.mount('#app')
startBrowserTelemetry(router)
startDomainEventSync(router)