skillbox/client/src/main.js

58 lines
1.3 KiB
JavaScript

import 'babel-polyfill'
import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
import VueVimeoPlayer from 'vue-vimeo-player'
import apolloClient from './graphql/client'
import VueApollo from 'vue-apollo'
import App from './App'
import router from './router'
import store from '@/store/index'
import VueScrollTo from 'vue-scrollto';
Vue.config.productionTip = false
// TODO: Move into a separate project as a plugin
//
function getRidOfEdges(collection) {
if (typeof collection === 'object') {
let newObj = {}
for (const k in collection) {
if (k === 'edges') {
return collection.edges.map(edge => getRidOfEdges(edge.node));
} else {
newObj[k] = getRidOfEdges(collection[k])
delete newObj[k]['__typename']
}
}
return newObj
} else {
return collection
}
}
Object.defineProperty(Vue.prototype, '$getRidOfEdges', {value: getRidOfEdges})
Vue.use(VueApollo)
Vue.use(VueAxios, axios)
Vue.use(VueVimeoPlayer)
Vue.use(VueScrollTo, {
duration: 500,
easing: 'ease-out',
offset: -50
})
const apolloProvider = new VueApollo({
defaultClient: apolloClient
})
/* eslint-disable no-new */
new Vue({
el: '#app',
store,
router,
provide: apolloProvider.provide(),
render: h => h(App)
})