1
1
mirror of https://github.com/aelve/guide.git synced 2024-12-25 13:51:45 +03:00
guide/front/client/app.ts
avele 5f0724eba8
confirmation decorator and confir for trait delete (#257)
* added helper promise

* confirmation decorator and confir for trait delete
2019-01-10 19:49:01 +04:00

72 lines
1.5 KiB
TypeScript

import Vue from 'vue'
import VueRouter from 'vue-router'
import Vuex from 'vuex'
import Vuetify from 'vuetify'
import { sync } from 'vuex-router-sync'
import axios from 'axios'
import ALink from 'client/components/ALink.vue'
import confirmDialogMixin from 'client/mixins/confirmDialogMixin'
import 'vuetify/dist/vuetify.css'
import { library } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { fas } from '@fortawesome/free-solid-svg-icons'
library.add(fas)
import 'client/assets/code-highlight.css'
import AppComponent from './App.vue'
import { createRouter } from './router'
import { createStore } from './store'
// webpack DefinePlugin constant, see build/webpack.base.conf.js for
declare var BASE_URL: string
axios.defaults.baseURL = BASE_URL
const icons = {}
// TODO import and add only used icons for production
Object.values(fas).forEach(({ iconName }) => {
icons[iconName] = {
component: 'font-awesome-icon',
props: {
icon: iconName
}
}
})
function initVue () {
Vue.use(VueRouter)
Vue.use(Vuex)
Vue.mixin(confirmDialogMixin)
Vue.component('ALink', ALink)
Vue.component('font-awesome-icon', FontAwesomeIcon)
Vue.use(Vuetify, {
iconfont: 'faSvg',
icons
})
}
function createApp () {
const router = createRouter()
const store = createStore()
sync(store, router)
const app = new Vue({
router,
store,
render: h => h(AppComponent)
})
return {
app,
router,
store
}
}
initVue()
export {
createApp
}