main.js 1.2 KB

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