forked from dotansimha/graphql-code-generator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
flow-types.flow.js
135 lines (113 loc) · 4.45 KB
/
flow-types.flow.js
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// @flow
import { type GraphQLResolveInfo } from 'graphql';
export type $RequireFields<Origin, Keys> = $Diff<Origin, Keys> &
$ObjMapi<Keys, <Key>(k: Key) => $NonMaybeType<$ElementType<Origin, Key>>>;
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {|
ID: string,
String: string,
Boolean: boolean,
Int: number,
Float: number,
|};
export type Query = {|
__typename?: 'Query',
allUsers: Array<?User>,
userById?: ?User,
|};
export type QueryUserByIdArgs = {|
id: $ElementType<Scalars, 'Int'>,
|};
export type User = {|
__typename?: 'User',
id: $ElementType<Scalars, 'Int'>,
name: $ElementType<Scalars, 'String'>,
email: $ElementType<Scalars, 'String'>,
|};
export type Resolver<Result, Parent = {}, Context = {}, Args = {}> = (
parent: Parent,
args: Args,
context: Context,
info: GraphQLResolveInfo
) => Promise<Result> | Result;
export type SubscriptionSubscribeFn<Result, Parent, Context, Args> = (
parent: Parent,
args: Args,
context: Context,
info: GraphQLResolveInfo
) => AsyncIterator<Result> | Promise<AsyncIterator<Result>>;
export type SubscriptionResolveFn<Result, Parent, Context, Args> = (
parent: Parent,
args: Args,
context: Context,
info: GraphQLResolveInfo
) => Result | Promise<Result>;
export interface SubscriptionSubscriberObject<Result, Key: string, Parent, Context, Args> {
subscribe: SubscriptionSubscribeFn<{ [key: Key]: Result }, Parent, Context, Args>;
resolve?: SubscriptionResolveFn<Result, { [key: Key]: Result }, Context, Args>;
}
export interface SubscriptionResolverObject<Result, Parent, Context, Args> {
subscribe: SubscriptionSubscribeFn<mixed, Parent, Context, Args>;
resolve: SubscriptionResolveFn<Result, mixed, Context, Args>;
}
export type SubscriptionObject<Result, Key: string, Parent, Context, Args> =
| SubscriptionSubscriberObject<Result, Key, Parent, Context, Args>
| SubscriptionResolverObject<Result, Parent, Context, Args>;
export type SubscriptionResolver<Result, Key: string, Parent = {}, Context = {}, Args = {}> =
| ((...args: Array<any>) => SubscriptionObject<Result, Key, Parent, Context, Args>)
| SubscriptionObject<Result, Key, Parent, Context, Args>;
export type TypeResolveFn<Types, Parent = {}, Context = {}> = (
parent: Parent,
context: Context,
info: GraphQLResolveInfo
) => ?Types | Promise<?Types>;
export type IsTypeOfResolverFn<T = {}> = (obj: T, info: GraphQLResolveInfo) => boolean | Promise<boolean>;
export type NextResolverFn<T> = () => Promise<T>;
export type DirectiveResolverFn<Result = {}, Parent = {}, Args = {}, Context = {}> = (
next: NextResolverFn<Result>,
parent: Parent,
args: Args,
context: Context,
info: GraphQLResolveInfo
) => Result | Promise<Result>;
export type ResolverTypeWrapper<T> = Promise<T> | T;
/** Mapping between all available schema types and the resolvers types */
export type ResolversTypes = {
Query: ResolverTypeWrapper<{}>,
Int: ResolverTypeWrapper<$ElementType<Scalars, 'Int'>>,
User: ResolverTypeWrapper<User>,
String: ResolverTypeWrapper<$ElementType<Scalars, 'String'>>,
Boolean: ResolverTypeWrapper<$ElementType<Scalars, 'Boolean'>>,
};
/** Mapping between all available schema types and the resolvers parents */
export type ResolversParentTypes = {
Query: {},
Int: $ElementType<Scalars, 'Int'>,
User: User,
String: $ElementType<Scalars, 'String'>,
Boolean: $ElementType<Scalars, 'Boolean'>,
};
export type QueryResolvers<ContextType = any, ParentType = $ElementType<ResolversParentTypes, 'Query'>> = {
allUsers?: Resolver<Array<?$ElementType<ResolversTypes, 'User'>>, ParentType, ContextType>,
userById?: Resolver<
?$ElementType<ResolversTypes, 'User'>,
ParentType,
ContextType,
$RequireFields<QueryUserByIdArgs, { id: * }>
>,
};
export type UserResolvers<ContextType = any, ParentType = $ElementType<ResolversParentTypes, 'User'>> = {
id?: Resolver<$ElementType<ResolversTypes, 'Int'>, ParentType, ContextType>,
name?: Resolver<$ElementType<ResolversTypes, 'String'>, ParentType, ContextType>,
email?: Resolver<$ElementType<ResolversTypes, 'String'>, ParentType, ContextType>,
__isTypeOf?: IsTypeOfResolverFn<ParentType>,
};
export type Resolvers<ContextType = any> = {
Query?: QueryResolvers<ContextType>,
User?: UserResolvers<ContextType>,
};
/**
* @deprecated
* Use "Resolvers" root object instead. If you wish to get "IResolvers", add "typesPrefix: I" to your config.
*/
export type IResolvers<ContextType = any> = Resolvers<ContextType>;