From 1abbe7477d7fcb1808242a05adf2f8d0689d6317 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Wed, 12 Aug 2020 15:06:50 +0900 Subject: [PATCH 1/2] Fix useQuery to support Vue 3 onServerPrefetch is not exported in Vue 3 at the moment --- packages/vue-apollo-composable/src/useQuery.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/vue-apollo-composable/src/useQuery.ts b/packages/vue-apollo-composable/src/useQuery.ts index f8cff420..30fa8879 100644 --- a/packages/vue-apollo-composable/src/useQuery.ts +++ b/packages/vue-apollo-composable/src/useQuery.ts @@ -137,10 +137,12 @@ export function useQuery< // SSR let firstResolve: Function let firstReject: Function - onServerPrefetch(() => new Promise((resolve, reject) => { - firstResolve = resolve - firstReject = reject - }).then(stop).catch(stop)) + if (onServerPrefetch) { + onServerPrefetch(() => new Promise((resolve, reject) => { + firstResolve = resolve + firstReject = reject + }).then(stop).catch(stop)) + } // Apollo Client const { resolveClient } = useApolloClient() From f6a6efc960c26b024041c6073ebbdbe59dacc5b4 Mon Sep 17 00:00:00 2001 From: Fran Dios Date: Tue, 18 Aug 2020 17:13:06 +0900 Subject: [PATCH 2/2] Remove reference to Vue --- packages/vue-apollo-composable/src/useQuery.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/vue-apollo-composable/src/useQuery.ts b/packages/vue-apollo-composable/src/useQuery.ts index 30fa8879..5bee8491 100644 --- a/packages/vue-apollo-composable/src/useQuery.ts +++ b/packages/vue-apollo-composable/src/useQuery.ts @@ -1,5 +1,4 @@ -import { ref, Ref, isRef, computed, watch, onServerPrefetch, getCurrentInstance, onBeforeUnmount } from 'vue-demi' -import Vue from 'vue' +import { ref, Ref, isRef, computed, watch, onServerPrefetch, getCurrentInstance, onBeforeUnmount, nextTick } from 'vue-demi' import { DocumentNode } from 'graphql' import { OperationVariables, @@ -290,7 +289,7 @@ export function useQuery< function baseRestart () { if (!started || restarting) return restarting = true - Vue.nextTick(() => { + nextTick(() => { if (started) { stop() start()