mirror of
https://github.com/halo-dev/halo.git
synced 2025-12-20 16:44:38 +08:00
65 lines
1.7 KiB
TypeScript
65 lines
1.7 KiB
TypeScript
import { setLanguage, setupI18n } from "@/locales";
|
|
import { setupApiClient } from "@/setup/setupApiClient";
|
|
import { setupComponents } from "@/setup/setupComponents";
|
|
import { setupCoreModules, setupPluginModules } from "@/setup/setupModules";
|
|
import "@/setup/setupStyles";
|
|
import { setupUserPermissions } from "@/setup/setupUserPermissions";
|
|
import { setupVueQuery } from "@/setup/setupVueQuery";
|
|
import modules from "@console/modules";
|
|
import { useThemeStore } from "@console/stores/theme";
|
|
import { stores } from "@halo-dev/ui-shared";
|
|
import "core-js/es/object/has-own";
|
|
import { createPinia } from "pinia";
|
|
import { createApp } from "vue";
|
|
import App from "./App.vue";
|
|
import router from "./router";
|
|
|
|
const app = createApp(App);
|
|
|
|
setupComponents(app);
|
|
setupI18n(app);
|
|
setupVueQuery(app);
|
|
setupApiClient();
|
|
|
|
app.use(createPinia());
|
|
|
|
async function loadActivatedTheme() {
|
|
const themeStore = useThemeStore();
|
|
await themeStore.fetchActivatedTheme();
|
|
}
|
|
|
|
await initApp();
|
|
|
|
async function initApp() {
|
|
try {
|
|
setupCoreModules({ app, router, platform: "console", modules });
|
|
|
|
const currentUserStore = stores.currentUser();
|
|
await currentUserStore.fetchCurrentUser();
|
|
|
|
const globalInfoStore = stores.globalInfo();
|
|
await globalInfoStore.fetchGlobalInfo();
|
|
|
|
await setLanguage();
|
|
|
|
if (currentUserStore.isAnonymous) {
|
|
return;
|
|
}
|
|
|
|
await setupUserPermissions(app);
|
|
|
|
try {
|
|
await setupPluginModules({ app, router, platform: "console" });
|
|
} catch (e) {
|
|
console.error("Failed to load plugins", e);
|
|
}
|
|
|
|
await loadActivatedTheme();
|
|
} catch (e) {
|
|
console.error(e);
|
|
} finally {
|
|
app.use(router);
|
|
app.mount("#app");
|
|
}
|
|
}
|