UNPKG

5.42 kBTypeScriptView Raw
1import { GraphQLSchema } from 'graphql';
2export interface AstNode {
3 directives: DirectiveUseMap;
4 usesDirectives: boolean;
5}
6export 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}
19export 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}
34export 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}
43export interface Scalar extends AstNode {
44 name: string;
45 description: string;
46}
47export interface Enum extends AstNode {
48 name: string;
49 description: string;
50 values: EnumValue[];
51}
52export interface EnumValue extends AstNode {
53 name: string;
54 value: string;
55 description: string;
56}
57export interface Union extends AstNode {
58 name: string;
59 description: string;
60 possibleTypes: string[];
61}
62export interface Interface extends AstNode {
63 name: string;
64 description: string;
65 fields: Field[];
66 hasFields: boolean;
67}
68export 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}
85export interface SelectionSetItem extends AstNode {
86 isFragmentSpread: boolean;
87 isInlineFragment: boolean;
88 isField: boolean;
89 isLeaf: boolean;
90}
91export 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}
101export interface SelectionSetFragmentSpread extends SelectionSetItem {
102 fragmentName: string;
103}
104export 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}
123export declare function isFieldNode(node: SelectionSetItem): node is SelectionSetFieldNode;
124export declare function isFragmentSpreadNode(node: SelectionSetItem): node is SelectionSetFragmentSpread;
125export declare function isInlineFragmentNode(node: SelectionSetItem): node is SelectionSetInlineFragment;
126export 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}
138export 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}
155export 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}
167export interface Document {
168 fragments: Fragment[];
169 operations: Operation[];
170 hasFragments: boolean;
171 hasOperations: boolean;
172}
173export interface DirectiveUseMap {
174 [name: string]: string;
175}
176export 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}