Skip to content

Commit c5ac6d9

Browse files
author
Guillaume Chau
committed
fix(types): Variables generic argument
1 parent 1ddcfe8 commit c5ac6d9

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

types/options.d.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,12 @@ export interface AllVueApolloComponentSpecialOptions {
3333
export type VueApolloComponentSpecialOptions =
3434
Partial<AllVueApolloComponentSpecialOptions>
3535

36-
interface PrivateVueApolloComponentOptions
37-
extends VueApolloComponentSpecialOptions {
36+
interface PrivateVueApolloComponentOptions extends VueApolloComponentSpecialOptions {
3837
[key: string] : VueApolloQueryProperty |
3938
VueApolloComponentSpecialOptions[keyof VueApolloComponentSpecialOptions]
4039
}
4140

42-
// https://github.com/microsoft/TypeScript/issues/33392
41+
// DeepApplyThisType is buggy: https://github.com/microsoft/TypeScript/issues/33392
4342
// export type VueApolloComponentOptions<Instance> = DeepApplyThisType<PrivateVueApolloComponentOptions, Instance>
4443
export type VueApolloComponentOptions<Instance> = PrivateVueApolloComponentOptions & ThisType<Instance>
4544

@@ -50,7 +49,7 @@ export type ErrorHandler = (error: ApolloError) => void
5049

5150
/* Query */
5251

53-
type QueryVariables = (() => OperationVariables) | OperationVariables
52+
type QueryVariables<Variables = OperationVariables> = (() => Variables) | Variables
5453

5554
export type VueApolloQueryProperty =
5655
DocumentNode |
@@ -60,9 +59,9 @@ export type VueApolloQueryProperty =
6059
// exclude query prop because it causes type incorrectly error
6160
type WatchQueryOptionsWithoutQuery = Omit<WatchQueryOptions, 'query'>
6261

63-
export interface VueApolloQueryDefinition<Result = any> extends WatchQueryOptionsWithoutQuery {
62+
export interface VueApolloQueryDefinition<Result = any, Variables = OperationVariables> extends WatchQueryOptionsWithoutQuery {
6463
query: DocumentNode | (() => DocumentNode | null)
65-
variables?: QueryVariables
64+
variables?: QueryVariables<Variables>
6665
update?: (data: Result) => any
6766
result?: (result: ApolloQueryResult<Result>, key: string) => void
6867
error?: ErrorHandler
@@ -73,17 +72,17 @@ export interface VueApolloQueryDefinition<Result = any> extends WatchQueryOption
7372
prefetch?: ((context: any) => any) | boolean
7473
client?: string
7574
deep?: boolean
76-
subscribeToMore?: VueApolloSubscribeToMoreOptions | VueApolloSubscribeToMoreOptions[]
75+
subscribeToMore?: VueApolloSubscribeToMoreOptions<Result, Variables> | VueApolloSubscribeToMoreOptions<Result, Variables>[]
7776
}
7877

7978
/* Subscriptions */
8079

81-
interface VueApolloSubscribeToMoreOptions extends SubscribeToMoreOptions {
82-
variables?: QueryVariables
80+
export interface VueApolloSubscribeToMoreOptions<Result = any, Variables = OperationVariables> extends Omit<SubscribeToMoreOptions<Result, Variables>, 'variables'> {
81+
variables?: QueryVariables<Variables>
8382
}
8483

85-
interface VueApolloSubscriptionDefinition extends SubscriptionOptions {
86-
variables?: QueryVariables
84+
export interface VueApolloSubscriptionDefinition<Variables = OperationVariables> extends Omit<SubscriptionOptions<Variables>, 'variables'> {
85+
variables?: QueryVariables<Variables>
8786
client?: string
8887
}
8988

0 commit comments

Comments
 (0)