main.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. 'use strict'
  2. import 'femtocrank/style.css'
  3. import 'femtocrank/dark.css'
  4. import './style.css'
  5. import 'iconify-icon'
  6. import { createClient } from '@connectrpc/connect'
  7. import { createConnectTransport } from '@connectrpc/connect-web'
  8. import { OliveTinApiService } from './resources/scripts/gen/olivetin/api/v1/olivetin_pb'
  9. import { createApp } from 'vue'
  10. import router from './resources/vue/router.js'
  11. import App from './resources/vue/App.vue'
  12. import {
  13. initMarshaller
  14. } from './js/marshaller.js'
  15. import { checkWebsocketConnection } from './js/websocket.js'
  16. function initClient () {
  17. const transport = createConnectTransport({
  18. baseUrl: window.location.protocol + '//' + window.location.host + '/api/'
  19. })
  20. window.client = createClient(OliveTinApiService, transport)
  21. }
  22. function setupVue () {
  23. const app = createApp(App)
  24. app.use(router)
  25. app.mount('#app')
  26. }
  27. function main () {
  28. initClient()
  29. // Expose websocket connection function globally so App.vue can call it after successful init
  30. window.checkWebsocketConnection = checkWebsocketConnection
  31. setupVue()
  32. initMarshaller()
  33. // window.addEventListener('EventConfigChanged', fetchGetDashboardComponents)
  34. // window.addEventListener('EventEntityChanged', fetchGetDashboardComponents)
  35. }
  36. main() // call self