Files
apollo/packages/test-ssr-composition/src/main.js
T
2019-12-02 03:53:03 +01:00

47 lines
816 B
JavaScript

import Vue from 'vue'
import VueCompositionAPI, { provide } from '@vue/composition-api'
import { DefaultApolloClient } from '@vue/apollo-composable'
import App from './App.vue'
import { createRouter } from './router'
import { createClient } from './vue-apollo'
Vue.use(VueCompositionAPI)
Vue.config.productionTip = false
export async function createApp ({
beforeApp = () => {},
afterApp = () => {}
} = {}) {
const router = createRouter()
const apolloClient = createClient({
ssr: process.server
})
await beforeApp({
router,
apolloClient
})
const app = new Vue({
router,
setup () {
provide(DefaultApolloClient, apolloClient)
},
render: h => h(App)
})
const result = {
app,
router,
apolloClient
}
await afterApp(result)
return result
}