- Docker infrastructure (Dockerfile, docker-compose.yml, genieacs-sim) - AdonisJS v7 app with Inertia.js + Vue 3 - MongoDB integration - CWMP/TR-069 state machine engine - Configuration engine with compliance tracking - Branding: ADAM ACS (favicon, navbar, locales) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
36 lines
1021 B
TypeScript
36 lines
1021 B
TypeScript
import { createApp, h } from 'vue'
|
|
import type { DefineComponent } from 'vue'
|
|
import { createInertiaApp } from '@inertiajs/vue3'
|
|
import DefaultLayout from '../layouts/MainLayout.vue'
|
|
import { createI18n } from 'vue-i18n'
|
|
import fr from '../locales/fr.json'
|
|
import en from '../locales/en.json'
|
|
import 'boosted/dist/css/boosted.min.css'
|
|
import './app.css'
|
|
|
|
const i18n = createI18n({
|
|
legacy: false,
|
|
locale: 'fr',
|
|
fallbackLocale: 'en',
|
|
messages: { fr, en },
|
|
})
|
|
|
|
createInertiaApp({
|
|
title: (title) => `${title} - ADAM ACS`,
|
|
resolve: (name) => {
|
|
const pages = import.meta.glob('../pages/**/*.vue', { eager: true }) as Record<string, { default: DefineComponent }>
|
|
const page = pages[`../pages/${name}.vue`]
|
|
if (!page) {
|
|
throw new Error(`Page not found: ${name}`)
|
|
}
|
|
page.default.layout = page.default.layout || DefaultLayout
|
|
return page
|
|
},
|
|
setup({ el, App, props, plugin }) {
|
|
createApp({ render: () => h(App, props) })
|
|
.use(plugin)
|
|
.use(i18n)
|
|
.mount(el)
|
|
},
|
|
})
|