loomio/loomio

View on GitHub
vue/src/main.js

Summary

Maintainability
A
0 mins
Test Coverage
import Vue from 'vue';
import AppConfig from '@/shared/services/app_config';
import vuetify from '@/vuetify';
import router from '@/routes';
import i18n from '@/i18n';
import app from '@/app.vue';
import markedDirective from '@/marked_directive';
import '@/observe_visibility';
import './removeServiceWorker';
import { pick } from 'lodash-es';
import * as Sentry from '@sentry/browser';
import WatchRecords from '@/mixins/watch_records';
import CloseModal from '@/mixins/close_modal';
import UrlFor from '@/mixins/url_for';
import FormatDate from '@/mixins/format_date';
import Vue2TouchEvents from 'vue2-touch-events';
import PlausibleService from '@/shared/services/plausible_service';


Vue.use(Vue2TouchEvents);
Vue.mixin(CloseModal);
Vue.mixin(WatchRecords);
Vue.mixin(UrlFor);
Vue.mixin(FormatDate);

Vue.config.productionTip = false;

import boot from '@/shared/helpers/boot';
import Session from '@/shared/services/session';

boot(function(data) {
  Session.apply(data);

  PlausibleService.boot();
  PlausibleService.trackPageview();

  if (AppConfig.sentry_dsn) {
    Sentry.configureScope(scope => scope.setUser(pick(Session.user(), ['id', 'name', 'email', 'username'])));
  }

  return new Vue({
    render(h) { return h(app); },
    router,
    vuetify,
    i18n
  }).$mount('#app');
});