1 | import { GraphQLSchema } from 'graphql';
|
2 | export interface AstNode {
|
3 | directives: DirectiveUseMap;
|
4 | usesDirectives: boolean;
|
5 | }
|
6 | export interface Argument extends AstNode {
|
7 | name: string;
|
8 | description: string;
|
9 | type: string;
|
10 | isRequired: boolean;
|
11 | isArray: boolean;
|
12 | isType: boolean;
|
13 | isScalar: boolean;
|
14 | isInterface: boolean;
|
15 | isUnion: boolean;
|
16 | isInputType: boolean;
|
17 | isEnum: boolean;
|
18 | }
|
19 | export interface Field extends AstNode {
|
20 | name: string;
|
21 | description: string;
|
22 | arguments: Argument[];
|
23 | type: string;
|
24 | isArray: boolean;
|
25 | isRequired: boolean;
|
26 | hasArguments: boolean;
|
27 | isType: boolean;
|
28 | isScalar: boolean;
|
29 | isInterface: boolean;
|
30 | isUnion: boolean;
|
31 | isInputType: boolean;
|
32 | isEnum: boolean;
|
33 | }
|
34 | export interface Type extends AstNode {
|
35 | fields: Field[];
|
36 | description: string;
|
37 | name: string;
|
38 | isInputType: boolean;
|
39 | interfaces: string[];
|
40 | hasFields: boolean;
|
41 | hasInterfaces: boolean;
|
42 | }
|
43 | export interface Scalar extends AstNode {
|
44 | name: string;
|
45 | description: string;
|
46 | }
|
47 | export interface Enum extends AstNode {
|
48 | name: string;
|
49 | description: string;
|
50 | values: EnumValue[];
|
51 | }
|
52 | export interface EnumValue extends AstNode {
|
53 | name: string;
|
54 | value: string;
|
55 | description: string;
|
56 | }
|
57 | export interface Union extends AstNode {
|
58 | name: string;
|
59 | description: string;
|
60 | possibleTypes: string[];
|
61 | }
|
62 | export interface Interface extends AstNode {
|
63 | name: string;
|
64 | description: string;
|
65 | fields: Field[];
|
66 | hasFields: boolean;
|
67 | }
|
68 | export interface SchemaTemplateContext extends AstNode {
|
69 | types: Type[];
|
70 | inputTypes: Type[];
|
71 | enums: Enum[];
|
72 | unions: Union[];
|
73 | interfaces: Interface[];
|
74 | scalars: Scalar[];
|
75 | definedDirectives: Directive[];
|
76 | hasTypes: boolean;
|
77 | hasInputTypes: boolean;
|
78 | hasEnums: boolean;
|
79 | hasUnions: boolean;
|
80 | hasScalars: boolean;
|
81 | hasInterfaces: boolean;
|
82 | hasDefinedDirectives: boolean;
|
83 | rawSchema: GraphQLSchema;
|
84 | }
|
85 | export interface SelectionSetItem extends AstNode {
|
86 | isFragmentSpread: boolean;
|
87 | isInlineFragment: boolean;
|
88 | isField: boolean;
|
89 | isLeaf: boolean;
|
90 | }
|
91 | export interface SelectionSetInlineFragment extends SelectionSetItem {
|
92 | selectionSet: SelectionSetItem[];
|
93 | onType: string;
|
94 | fields: SelectionSetFieldNode[];
|
95 | fragmentsSpread: SelectionSetFragmentSpread[];
|
96 | inlineFragments: SelectionSetInlineFragment[];
|
97 | hasFragmentsSpread: boolean;
|
98 | hasInlineFragments: boolean;
|
99 | hasFields: boolean;
|
100 | }
|
101 | export interface SelectionSetFragmentSpread extends SelectionSetItem {
|
102 | fragmentName: string;
|
103 | }
|
104 | export interface SelectionSetFieldNode extends SelectionSetItem {
|
105 | selectionSet: SelectionSetItem[];
|
106 | name: string;
|
107 | type: string;
|
108 | isRequired: boolean;
|
109 | isArray: boolean;
|
110 | fields: SelectionSetFieldNode[];
|
111 | fragmentsSpread: SelectionSetFragmentSpread[];
|
112 | inlineFragments: SelectionSetInlineFragment[];
|
113 | hasFragmentsSpread: boolean;
|
114 | hasInlineFragments: boolean;
|
115 | hasFields: boolean;
|
116 | isType: boolean;
|
117 | isScalar: boolean;
|
118 | isInterface: boolean;
|
119 | isUnion: boolean;
|
120 | isInputType: boolean;
|
121 | isEnum: boolean;
|
122 | }
|
123 | export declare function isFieldNode(node: SelectionSetItem): node is SelectionSetFieldNode;
|
124 | export declare function isFragmentSpreadNode(node: SelectionSetItem): node is SelectionSetFragmentSpread;
|
125 | export declare function isInlineFragmentNode(node: SelectionSetItem): node is SelectionSetInlineFragment;
|
126 | export interface Fragment extends AstNode {
|
127 | name: string;
|
128 | selectionSet: SelectionSetItem[];
|
129 | onType: string;
|
130 | document: string;
|
131 | fields: SelectionSetFieldNode[];
|
132 | fragmentsSpread: SelectionSetFragmentSpread[];
|
133 | inlineFragments: SelectionSetInlineFragment[];
|
134 | hasFragmentsSpread: boolean;
|
135 | hasInlineFragments: boolean;
|
136 | hasFields: boolean;
|
137 | }
|
138 | export interface Operation extends AstNode {
|
139 | name: string;
|
140 | selectionSet: SelectionSetItem[];
|
141 | operationType: string;
|
142 | variables: Variable[];
|
143 | hasVariables: boolean;
|
144 | isQuery: boolean;
|
145 | isMutation: boolean;
|
146 | isSubscription: boolean;
|
147 | document: string;
|
148 | fields: SelectionSetFieldNode[];
|
149 | fragmentsSpread: SelectionSetFragmentSpread[];
|
150 | inlineFragments: SelectionSetInlineFragment[];
|
151 | hasFragmentsSpread: boolean;
|
152 | hasInlineFragments: boolean;
|
153 | hasFields: boolean;
|
154 | }
|
155 | export interface Variable {
|
156 | name: string;
|
157 | type: string;
|
158 | isRequired: boolean;
|
159 | isArray: boolean;
|
160 | isType: boolean;
|
161 | isScalar: boolean;
|
162 | isInterface: boolean;
|
163 | isUnion: boolean;
|
164 | isInputType: boolean;
|
165 | isEnum: boolean;
|
166 | }
|
167 | export interface Document {
|
168 | fragments: Fragment[];
|
169 | operations: Operation[];
|
170 | hasFragments: boolean;
|
171 | hasOperations: boolean;
|
172 | }
|
173 | export interface DirectiveUseMap {
|
174 | [name: string]: string;
|
175 | }
|
176 | export interface Directive {
|
177 | name: string;
|
178 | description: string;
|
179 | locations: string[];
|
180 | arguments: Argument[];
|
181 | hasArguments: boolean;
|
182 | onFragmentSpread: boolean;
|
183 | onInlineFragment: boolean;
|
184 | onQuery: boolean;
|
185 | onMutation: boolean;
|
186 | onSubscription: boolean;
|
187 | onFragment: boolean;
|
188 | onField: boolean;
|
189 | onSchema: boolean;
|
190 | onScalar: boolean;
|
191 | onFieldDefinition: boolean;
|
192 | onEnum: boolean;
|
193 | onEnumValue: boolean;
|
194 | onObject: boolean;
|
195 | onInputObject: boolean;
|
196 | onInputField: boolean;
|
197 | onArgument: boolean;
|
198 | onInterface: boolean;
|
199 | onUnion: boolean;
|
200 | }
|