44 lines
970 B
TypeScript
44 lines
970 B
TypeScript
import Vue from 'vue'
|
|
import Router from 'vue-router'
|
|
import Vuex from 'vuex'
|
|
import '@/style/main.scss'
|
|
import '@/shared/components'
|
|
import App from '@/app/App.vue'
|
|
import { setupRouter } from '@/shared/router'
|
|
import { setupStore } from '@/shared/store'
|
|
import { API } from '@/shared/api'
|
|
import { AuthService } from '@/auth/service'
|
|
import { setupAudio } from './player/store'
|
|
|
|
declare module 'vue/types/vue' {
|
|
interface Vue {
|
|
$auth: AuthService
|
|
$api: API
|
|
}
|
|
}
|
|
|
|
Vue.config.productionTip = false
|
|
Vue.use(Router)
|
|
Vue.use(Vuex)
|
|
|
|
const authService = new AuthService()
|
|
const api = new API(authService)
|
|
const router = setupRouter(authService)
|
|
const store = setupStore(authService, api)
|
|
setupAudio(store, api)
|
|
|
|
Vue.prototype.$auth = authService
|
|
Vue.prototype.$api = api
|
|
|
|
Vue.config.errorHandler = (err) => {
|
|
// eslint-disable-next-line
|
|
console.error(err)
|
|
store.commit('setError', err)
|
|
}
|
|
|
|
new Vue({
|
|
router,
|
|
store,
|
|
render: h => h(App)
|
|
}).$mount('#app')
|