diff --git a/packages/test-e2e-composable-vue3/package.json b/packages/test-e2e-composable-vue3/package.json index a366057..9ecda44 100644 --- a/packages/test-e2e-composable-vue3/package.json +++ b/packages/test-e2e-composable-vue3/package.json @@ -13,7 +13,7 @@ "api": "node server.js" }, "dependencies": { - "@apollo/client": "^3.6.9", + "@apollo/client": "^3.7.7", "@vue/apollo-composable": "workspace:*", "@vue/apollo-util": "workspace:*", "apollo-server-express": "^2.25.4", diff --git a/packages/test-e2e/apollo-server/resolvers.js b/packages/test-e2e/apollo-server/resolvers.js index 07a084d..9fd4786 100644 --- a/packages/test-e2e/apollo-server/resolvers.js +++ b/packages/test-e2e/apollo-server/resolvers.js @@ -27,7 +27,7 @@ module.exports = { throw new Error('An error') }, loadNumber: () => new Promise((resolve) => { - setTimeout(() => resolve(42), 100) + setTimeout(() => resolve(42), 500) }), items: () => [ { diff --git a/packages/test-e2e/package.json b/packages/test-e2e/package.json index b841dd3..426a31a 100644 --- a/packages/test-e2e/package.json +++ b/packages/test-e2e/package.json @@ -13,7 +13,7 @@ "api": "node server.js" }, "dependencies": { - "@apollo/client": "^3.6.9", + "@apollo/client": "^3.7.7", "@vue/apollo-components": "workspace:*", "@vue/apollo-option": "workspace:*", "apollo-server-express": "^2.25.4", diff --git a/packages/vue-apollo-components/package.json b/packages/vue-apollo-components/package.json index 7a87507..6b541a0 100644 --- a/packages/vue-apollo-components/package.json +++ b/packages/vue-apollo-components/package.json @@ -47,7 +47,7 @@ "vue": "^3.1.0" }, "devDependencies": { - "@apollo/client": "^3.6.9", + "@apollo/client": "^3.7.7", "@babel/core": "^7.18.5", "@babel/plugin-proposal-class-properties": "^7.17.12", "@babel/plugin-transform-for-of": "^7.18.1", diff --git a/packages/vue-apollo-composable/package.json b/packages/vue-apollo-composable/package.json index 3c92667b..74f7611 100644 --- a/packages/vue-apollo-composable/package.json +++ b/packages/vue-apollo-composable/package.json @@ -61,7 +61,7 @@ } }, "devDependencies": { - "@apollo/client": "^3.6.9", + "@apollo/client": "^3.7.7", "@types/throttle-debounce": "^2.1.0", "graphql": "^15.8.0", "graphql-tag": "^2.12.6", diff --git a/packages/vue-apollo-composable/src/useLazyQuery.ts b/packages/vue-apollo-composable/src/useLazyQuery.ts index 53f77c2..84c3434 100644 --- a/packages/vue-apollo-composable/src/useLazyQuery.ts +++ b/packages/vue-apollo-composable/src/useLazyQuery.ts @@ -4,13 +4,12 @@ import { useQueryImpl, DocumentParameter, VariablesParameter, OptionsParameter, export function useLazyQuery< TResult = any, - TVariables = any, + TVariables extends Record = any, > ( document: DocumentParameter, variables?: VariablesParameter, options?: OptionsParameter, ) { - // @ts-expect-error apollo-client types issue with TVariables const query = useQueryImpl(document, variables, options, true) function load ( diff --git a/packages/vue-apollo-composable/src/useQuery.ts b/packages/vue-apollo-composable/src/useQuery.ts index f827924..504fe36 100644 --- a/packages/vue-apollo-composable/src/useQuery.ts +++ b/packages/vue-apollo-composable/src/useQuery.ts @@ -37,8 +37,7 @@ import type { CurrentInstance } from './util/types' export interface UseQueryOptions< // eslint-disable-next-line @typescript-eslint/no-unused-vars TResult = any, - TVariables = OperationVariables - // @ts-expect-error apollo-client types issue with TVariables + TVariables extends OperationVariables = OperationVariables > extends Omit, 'query' | 'variables'> { clientId?: string enabled?: boolean @@ -55,10 +54,10 @@ interface SubscribeToMoreItem { // Parameters export type DocumentParameter = DocumentNode | Ref | ReactiveFunction | TypedDocumentNode | Ref> | ReactiveFunction> export type VariablesParameter = TVariables | Ref | ReactiveFunction -export type OptionsParameter = UseQueryOptions | Ref> | ReactiveFunction> +export type OptionsParameter = UseQueryOptions | Ref> | ReactiveFunction> // Return -export interface UseQueryReturn { +export interface UseQueryReturn { result: Ref loading: Ref networkStatus: Ref @@ -70,7 +69,6 @@ export interface UseQueryReturn { document: Ref variables: Ref options: UseQueryOptions | Ref> - // @ts-expect-error apollo-client types issue with TVariables query: Ref | null | undefined> refetch: (variables?: TVariables) => Promise> | undefined fetchMore: (options: FetchMoreQueryOptions & FetchMoreOptions) => Promise> | undefined @@ -88,7 +86,7 @@ export interface UseQueryReturn { * */ export function useQuery ( document: DocumentParameter -): UseQueryReturn +): UseQueryReturn> /** * Use a query that has optional variables but not options @@ -111,8 +109,8 @@ export function useQuery ( document: DocumentParameter, variables: undefined | null, - options: OptionsParameter, -): UseQueryReturn + options: OptionsParameter>, +): UseQueryReturn> /** * Use a query that requires variables and options. @@ -220,7 +218,7 @@ export function useQueryImpl< query.value = client.watchQuery({ query: currentDocument, - variables: currentVariables, + variables: currentVariables ?? {} as TVariables, ...currentOptions.value, ...(isServer && currentOptions.value?.fetchPolicy !== 'no-cache') ? { diff --git a/packages/vue-apollo-composable/src/useSubscription.ts b/packages/vue-apollo-composable/src/useSubscription.ts index dd25a05..e5738ce 100644 --- a/packages/vue-apollo-composable/src/useSubscription.ts +++ b/packages/vue-apollo-composable/src/useSubscription.ts @@ -105,7 +105,7 @@ export function useSubscription > ( document: DocumentParameter, variables: VariablesParameter | undefined = undefined, @@ -140,7 +140,6 @@ export function useSubscription < const client = resolveClient(currentOptions.value?.clientId) - // @ts-expect-error apollo-client types issue with TVariables subscription.value = client.subscribe({ query: currentDocument, variables: currentVariables, diff --git a/packages/vue-apollo-composable/tests/types/useQuery-types.test.ts b/packages/vue-apollo-composable/tests/types/useQuery-types.test.ts index 57e4b1e..d145469 100644 --- a/packages/vue-apollo-composable/tests/types/useQuery-types.test.ts +++ b/packages/vue-apollo-composable/tests/types/useQuery-types.test.ts @@ -20,7 +20,7 @@ import { assertExactType } from './assertions' useQueryNoTypesResult.type.is.any const useQueryNoTypesVariables = useQueryNoTypes.variables.value - assertExactType(useQueryNoTypesVariables) + assertExactType | undefined>(useQueryNoTypesVariables) } // ============================================================================= @@ -35,7 +35,7 @@ import { assertExactType } from './assertions' assertExactType(useQueryOnlyQueryTypeResult) const useQueryOnlyQueryTypeVariables = useQueryOnlyQueryType.variables.value - assertExactType(useQueryOnlyQueryTypeVariables) + assertExactType | undefined>(useQueryOnlyQueryTypeVariables) } // ============================================================================= @@ -111,7 +111,7 @@ import { assertExactType } from './assertions' const useQueryOnlyQueryTypeNoVarsWithOptionsVariables = useQueryOnlyQueryTypeNoVarsWithOptions.variables.value - assertExactType( + assertExactType | undefined>( useQueryOnlyQueryTypeNoVarsWithOptionsVariables, ) } @@ -132,7 +132,7 @@ import { assertExactType } from './assertions' const useQueryOnlyQueryTypeNoVarsWithOptionsVariables = useQueryOnlyQueryTypeNoVarsWithOptions.variables.value - assertExactType( + assertExactType | undefined>( useQueryOnlyQueryTypeNoVarsWithOptionsVariables, ) } @@ -148,7 +148,9 @@ import { assertExactType } from './assertions' { id: '4E79Lq' }, { clientId: 'any', - context: { foo: 'any' }, + context: { + string: 'any', + }, debounce: 500, enabled: true, errorPolicy: 'all', diff --git a/packages/vue-apollo-option/package.json b/packages/vue-apollo-option/package.json index 93a11f1..0423845 100644 --- a/packages/vue-apollo-option/package.json +++ b/packages/vue-apollo-option/package.json @@ -54,7 +54,7 @@ "throttle-debounce": "^3.0.1" }, "devDependencies": { - "@apollo/client": "^3.6.9", + "@apollo/client": "^3.7.7", "@babel/core": "^7.18.5", "@babel/plugin-proposal-class-properties": "^7.17.12", "@babel/plugin-transform-for-of": "^7.18.1", diff --git a/packages/vue-apollo-ssr/package.json b/packages/vue-apollo-ssr/package.json index 1a2a81b..305476d 100644 --- a/packages/vue-apollo-ssr/package.json +++ b/packages/vue-apollo-ssr/package.json @@ -45,7 +45,7 @@ "serialize-javascript": "^6.0.0" }, "devDependencies": { - "@apollo/client": "^3.6.9", + "@apollo/client": "^3.7.7", "@types/serialize-javascript": "^5.0.2", "typescript": "^4.7.4" } diff --git a/packages/vue-apollo-util/package.json b/packages/vue-apollo-util/package.json index 9a37093..bcc406a 100644 --- a/packages/vue-apollo-util/package.json +++ b/packages/vue-apollo-util/package.json @@ -41,7 +41,7 @@ "prepublishOnly": "pnpm run build" }, "devDependencies": { - "@apollo/client": "^3.6.9", + "@apollo/client": "^3.7.7", "graphql": "^15.8.0", "typescript": "^4.7.4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d5e873..a981a31 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,7 +72,7 @@ importers: packages/test-e2e: dependencies: '@apollo/client': - specifier: ^3.6.9 + specifier: ^3.7.7 version: 3.7.9(graphql@15.8.0)(subscriptions-transport-ws@0.9.19) '@vue/apollo-components': specifier: workspace:* @@ -172,7 +172,7 @@ importers: packages/test-e2e-composable-vue3: dependencies: '@apollo/client': - specifier: ^3.6.9 + specifier: ^3.7.7 version: 3.7.9(graphql@15.8.0)(subscriptions-transport-ws@0.9.19) '@vue/apollo-composable': specifier: workspace:* @@ -255,7 +255,7 @@ importers: version: link:../vue-apollo-option devDependencies: '@apollo/client': - specifier: ^3.6.9 + specifier: ^3.7.7 version: 3.7.9(graphql@15.8.0)(subscriptions-transport-ws@0.9.19) '@babel/core': specifier: ^7.18.5 @@ -337,7 +337,7 @@ importers: version: 0.13.11(@vue/composition-api@1.0.0)(vue@3.2.47) devDependencies: '@apollo/client': - specifier: ^3.6.9 + specifier: ^3.7.7 version: 3.7.9(graphql@15.8.0)(subscriptions-transport-ws@0.9.19) '@types/throttle-debounce': specifier: ^2.1.0 @@ -368,7 +368,7 @@ importers: version: 3.0.1 devDependencies: '@apollo/client': - specifier: ^3.6.9 + specifier: ^3.7.7 version: 3.7.9(graphql@15.8.0)(subscriptions-transport-ws@0.9.19) '@babel/core': specifier: ^7.18.5 @@ -447,7 +447,7 @@ importers: version: 6.0.1 devDependencies: '@apollo/client': - specifier: ^3.6.9 + specifier: ^3.7.7 version: 3.7.9(graphql@15.8.0)(subscriptions-transport-ws@0.9.19) '@types/serialize-javascript': specifier: ^5.0.2 @@ -459,7 +459,7 @@ importers: packages/vue-apollo-util: devDependencies: '@apollo/client': - specifier: ^3.6.9 + specifier: ^3.7.7 version: 3.7.9(graphql@15.8.0)(subscriptions-transport-ws@0.9.19) graphql: specifier: ^15