Files
server/core/src/private.ts
Sebastian Krupinski 8be5b0b4ee
All checks were successful
JS Unit Tests / test (pull_request) Successful in 15s
Build Test / build (pull_request) Successful in 19s
PHP Unit Tests / test (pull_request) Successful in 49s
refactor: drop unused css styles
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-02-22 17:32:35 -05:00

67 lines
1.9 KiB
TypeScript

import * as Vue from 'vue'
import * as VueRouterLib from 'vue-router'
import * as PiniaLib from 'pinia'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import { PerfectScrollbarPlugin } from 'vue3-perfect-scrollbar'
import { useModuleStore } from '@KTXC/stores/moduleStore'
import { useTenantStore } from '@KTXC/stores/tenantStore'
import { useUserStore } from '@KTXC/stores/userStore'
import { fetchWrapper } from '@KTXC/utils/helpers/fetch-wrapper'
import { initializeModules } from '@KTXC/utils/modules'
import { createSessionMonitor } from '@KTXC/services/authManager'
import App from './App.vue'
import router from './router'
import vuetify from './plugins/vuetify/index'
import '@mdi/font/css/materialdesignicons.min.css'
import '@fontsource/public-sans/index.css'
const app = createApp(App)
const pinia = createPinia()
app.use(pinia)
app.use(PerfectScrollbarPlugin)
app.use(vuetify)
const globalWindow = window as typeof window & {
[key: string]: unknown
}
globalWindow.Vue = Vue
globalWindow.vue = Vue
globalWindow.VueRouter = VueRouterLib
globalWindow.Pinia = PiniaLib as unknown
(async () => {
const moduleStore = useModuleStore();
const tenantStore = useTenantStore();
const userStore = useUserStore();
try {
const payload = await fetchWrapper.get('/init');
moduleStore.init(payload?.modules ?? {});
tenantStore.init(payload?.tenant ?? null);
userStore.init(payload?.user ?? {});
// Initialize auth session monitor
const sessionMonitor = createSessionMonitor({ onLogout: () => userStore.logout() });
sessionMonitor.start();
// Initialize registered modules
await initializeModules(app);
// Register a catch-all and router
router.addRoute({
name: 'NotFound',
path: '/:pathMatch(.*)*',
component: () => import('@KTXC/views/pages/maintenance/error/Error404Page.vue')
});
app.use(router);
await router.isReady();
app.mount('#app');
} catch (e) {
console.error('Bootstrap failed:', e);
}
})();