1 import { createApp
} from
'vue'
2 import ToastPlugin from
'vue-toast-notification'
3 import type { ConfigurationData
, ResponsePayload
} from
'./types'
4 import { router
} from
'@/router'
5 import { UIClient
} from
'@/composables'
6 import App from
'@/App.vue'
7 import 'vue-toast-notification/dist/theme-bootstrap.css'
9 const initializeApp
= (config
: ConfigurationData
) => {
10 const app
= createApp(App
)
11 app
.config
.errorHandler
= (error
, instance
, info
) => {
12 console
.error('Error:', error
)
13 console
.info('Vue instance:', instance
)
14 console
.info('Error info:', info
)
15 // TODO: add code for UI notifications or other error handling logic
17 app
.config
.globalProperties
.$uiClient
= UIClient
.getInstance(config
.uiServer
)
18 app
.config
.globalProperties
.$uiClient
.registerWSEventListener('open', () => {
19 app
.config
.globalProperties
.$uiClient
20 .listChargingStations()
21 .then((response
: ResponsePayload
) => {
22 app
.config
.globalProperties
.$chargingStations
= response
.chargingStations
24 .catch((error
: Error) => {
25 // TODO: add code for UI notifications or other error handling logic
26 console
.error('Error at fetching charging stations:', error
)
30 app
.use(router
).use(ToastPlugin
).mount('#app')
36 .then(response
=> response
.json())
38 console
.error('Error at fetching app configuration:', error
)
45 console
.error('Error at initializing app:', error
)