This repository has been archived by the owner on Apr 13, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 787
/
Copy pathtypes.ts
115 lines (97 loc) · 2.88 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import { ReactNode } from 'react';
import {
ApolloClient,
ApolloQueryResult,
ObservableQuery,
ApolloError
} from 'apollo-client';
import { Observable } from 'apollo-link';
import {
OperationVariables,
QueryFunctionOptions,
QueryResult,
BaseMutationOptions,
MutationResult,
MutationFunctionOptions,
ExecutionResult,
BaseSubscriptionOptions,
SubscriptionResult,
Context
} from '@apollo/react-common';
import { DocumentNode } from 'graphql';
/* Common types */
export type CommonOptions<TOptions> = TOptions & {
client?: ApolloClient<object>;
};
/* Query types */
export interface QueryOptions<TData = any, TVariables = OperationVariables>
extends QueryFunctionOptions<TData, TVariables> {
children?: (result: QueryResult<TData, TVariables>) => ReactNode;
query: DocumentNode;
}
export interface QueryHookOptions<TData = any, TVariables = OperationVariables>
extends QueryFunctionOptions<TData, TVariables> {
query?: DocumentNode;
}
export interface LazyQueryHookOptions<
TData = any,
TVariables = OperationVariables
> extends Omit<QueryFunctionOptions<TData, TVariables>, 'skip'> {
query?: DocumentNode;
}
export interface QueryPreviousData<TData, TVariables> {
client?: ApolloClient<object>;
query?: DocumentNode;
observableQueryOptions?: {};
result?: ApolloQueryResult<TData> | null;
loading?: boolean;
options?: QueryOptions<TData, TVariables>;
error?: ApolloError;
}
export interface QueryCurrentObservable<TData, TVariables> {
query?: ObservableQuery<TData, TVariables> | null;
subscription?: ZenObservable.Subscription;
}
export interface QueryLazyOptions<TVariables> {
variables?: TVariables;
context?: Context;
}
export type QueryTuple<TData, TVariables> = [
(options?: QueryLazyOptions<TVariables>) => void,
QueryResult<TData, TVariables>
];
/* Mutation types */
export interface MutationHookOptions<
TData = any,
TVariables = OperationVariables
> extends BaseMutationOptions<TData, TVariables> {
mutation?: DocumentNode;
}
export interface MutationOptions<TData = any, TVariables = OperationVariables>
extends BaseMutationOptions<TData, TVariables> {
mutation: DocumentNode;
}
export type MutationTuple<TData, TVariables> = [
(
options?: MutationFunctionOptions<TData, TVariables>
) => Promise<ExecutionResult<TData>>,
MutationResult<TData>
];
/* Subscription types */
export interface SubscriptionHookOptions<
TData = any,
TVariables = OperationVariables
> extends BaseSubscriptionOptions<TData, TVariables> {
subscription?: DocumentNode;
}
export interface SubscriptionOptions<
TData = any,
TVariables = OperationVariables
> extends BaseSubscriptionOptions<TData, TVariables> {
subscription: DocumentNode;
children?: null | ((result: SubscriptionResult<TData>) => JSX.Element | null);
}
export interface SubscriptionCurrentObservable {
query?: Observable<any>;
subscription?: ZenObservable.Subscription;
}