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 790
/
types.ts
114 lines (104 loc) · 2.96 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
import {
ApolloClient,
ApolloQueryResult,
ApolloError,
FetchMoreOptions,
UpdateQueryOptions,
FetchMoreQueryOptions,
SubscribeToMoreOptions
} from 'apollo-client';
import {
OperationVariables,
MutationFunction,
BaseQueryOptions,
BaseMutationOptions,
MutationResult
} from '@apollo/react-common';
export interface QueryControls<
TData = any,
TGraphQLVariables = OperationVariables
> {
error?: ApolloError;
networkStatus: number;
loading: boolean;
variables: TGraphQLVariables;
fetchMore: (
fetchMoreOptions: FetchMoreQueryOptions<TGraphQLVariables, any> &
FetchMoreOptions<TData, TGraphQLVariables>
) => Promise<ApolloQueryResult<TData>>;
refetch: (variables?: TGraphQLVariables) => Promise<ApolloQueryResult<TData>>;
startPolling: (pollInterval: number) => void;
stopPolling: () => void;
subscribeToMore: (options: SubscribeToMoreOptions) => () => void;
updateQuery: (
mapFn: (previousQueryResult: any, options: UpdateQueryOptions<any>) => any
) => void;
}
export type DataValue<
TData,
TGraphQLVariables = OperationVariables
> = QueryControls<TData, TGraphQLVariables> &
// data may not yet be loaded
Partial<TData>;
export interface DataProps<TData, TGraphQLVariables = OperationVariables> {
data: DataValue<TData, TGraphQLVariables>;
}
export interface MutateProps<
TData = any,
TGraphQLVariables = OperationVariables
> {
mutate: MutationFunction<TData, TGraphQLVariables>;
result: MutationResult<TData>;
}
export type ChildProps<
TProps = {},
TData = {},
TGraphQLVariables = OperationVariables
> = TProps &
Partial<DataProps<TData, TGraphQLVariables>> &
Partial<MutateProps<TData, TGraphQLVariables>>;
export type ChildDataProps<
TProps = {},
TData = {},
TGraphQLVariables = OperationVariables
> = TProps & DataProps<TData, TGraphQLVariables>;
export type ChildMutateProps<
TProps = {},
TData = {},
TGraphQLVariables = OperationVariables
> = TProps & MutateProps<TData, TGraphQLVariables>;
export interface OptionProps<
TProps = any,
TData = any,
TGraphQLVariables = OperationVariables
>
extends Partial<DataProps<TData, TGraphQLVariables>>,
Partial<MutateProps<TData, TGraphQLVariables>> {
ownProps: TProps;
}
export interface OperationOption<
TProps,
TData,
TGraphQLVariables = OperationVariables,
TChildProps = ChildProps<TProps, TData, TGraphQLVariables>
> {
options?:
| BaseQueryOptions<TGraphQLVariables>
| BaseMutationOptions<TData, TGraphQLVariables>
| ((
props: TProps
) =>
| BaseQueryOptions<TGraphQLVariables>
| BaseMutationOptions<TData, TGraphQLVariables>
);
props?: (
props: OptionProps<TProps, TData, TGraphQLVariables>,
lastProps?: TChildProps | void
) => TChildProps;
skip?: boolean | ((props: TProps) => boolean);
name?: string;
withRef?: boolean;
shouldResubscribe?: (props: TProps, nextProps: TProps) => boolean;
alias?: string;
}
export type WithApolloClient<P> = P & { client: ApolloClient<any> };