2024-05-17 16:39:50 +02:00
|
|
|
import { createApp, type Component } from 'vue'
|
2020-07-06 19:08:34 +02:00
|
|
|
import App from './App.vue'
|
2024-03-13 18:16:05 +01:00
|
|
|
import { createBootstrap } from 'bootstrap-vue-next'
|
2024-03-04 15:12:40 +01:00
|
|
|
import { VueShowdownPlugin } from 'vue-showdown'
|
2020-08-29 19:05:56 +02:00
|
|
|
|
2020-08-27 18:30:45 +02:00
|
|
|
import store from './store'
|
2021-11-10 18:40:42 +01:00
|
|
|
import router from './router'
|
|
|
|
import i18n from './i18n'
|
2020-07-07 13:48:54 +02:00
|
|
|
|
2021-02-11 15:22:42 +01:00
|
|
|
import { registerGlobalErrorHandlers } from './api'
|
2021-11-10 18:40:42 +01:00
|
|
|
import { initDefaultLocales } from './i18n/helpers'
|
2021-02-11 15:22:42 +01:00
|
|
|
|
2024-03-13 18:16:05 +01:00
|
|
|
import '@/scss/main.scss'
|
|
|
|
|
2024-05-17 16:39:50 +02:00
|
|
|
type Module = { default: Component }
|
|
|
|
|
|
|
|
const app = createApp(App)
|
2024-03-03 18:08:10 +01:00
|
|
|
|
|
|
|
app.use(store)
|
|
|
|
app.use(router)
|
|
|
|
app.use(i18n)
|
|
|
|
|
2024-03-13 18:16:05 +01:00
|
|
|
app.use(createBootstrap())
|
2020-08-29 19:05:56 +02:00
|
|
|
|
2024-03-04 15:12:40 +01:00
|
|
|
app.use(VueShowdownPlugin, {
|
|
|
|
flavor: 'github',
|
2021-08-14 14:37:19 +02:00
|
|
|
options: {
|
2024-02-24 18:25:12 +01:00
|
|
|
emoji: true,
|
|
|
|
},
|
2021-08-14 14:37:19 +02:00
|
|
|
})
|
2021-02-11 15:22:42 +01:00
|
|
|
|
2020-07-08 14:35:22 +02:00
|
|
|
// Register global components
|
2024-02-24 18:25:12 +01:00
|
|
|
const globalComponentsModules = import.meta.glob(
|
|
|
|
['@/components/globals/*.vue', '@/components/globals/*/*.vue'],
|
|
|
|
{ eager: true },
|
2024-05-17 16:39:50 +02:00
|
|
|
) as Record<string, Module>
|
|
|
|
Object.values(globalComponentsModules).forEach(
|
|
|
|
({ default: component }: Module) => {
|
|
|
|
// FIXME component name is not automatic (there is the `__name` but it's private and may change)
|
|
|
|
// Solution seems to use:
|
|
|
|
// defineOptions({
|
|
|
|
// name: 'FormField',
|
|
|
|
// })
|
|
|
|
app.component(component.__name || component.name, component)
|
|
|
|
},
|
2024-02-24 18:25:12 +01:00
|
|
|
)
|
2020-07-08 14:35:22 +02:00
|
|
|
|
2021-02-11 15:22:42 +01:00
|
|
|
registerGlobalErrorHandlers()
|
|
|
|
|
2021-11-10 18:40:42 +01:00
|
|
|
// Load default locales translations files and setup store data
|
2022-10-10 17:27:36 +02:00
|
|
|
initDefaultLocales().then(() => {
|
2024-03-03 18:08:10 +01:00
|
|
|
app.mount('#app')
|
2021-05-31 05:30:18 +02:00
|
|
|
})
|