Skip to content

Commit 63344b5

Browse files
authored
Add support for description parsing (#132)
1 parent 69342d5 commit 63344b5

17 files changed

+875
-31
lines changed

src/GraphQLParser.ApiTests/GraphQL-Parser.approved.txt

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ namespace GraphQLParser.AST
4747
TypeExtensionDefinition = 35,
4848
DirectiveDefinition = 36,
4949
Comment = 37,
50+
Description = 38,
5051
}
5152
public class GraphQLArgument : GraphQLParser.AST.ASTNode, GraphQLParser.AST.INamedNode
5253
{
@@ -62,14 +63,20 @@ namespace GraphQLParser.AST
6263
public GraphQLParser.ROM Text { get; set; }
6364
public override GraphQLParser.AST.GraphQLLocation Location { get; set; }
6465
}
66+
public class GraphQLDescription : GraphQLParser.AST.ASTNode
67+
{
68+
public GraphQLDescription() { }
69+
public override GraphQLParser.AST.ASTNodeKind Kind { get; }
70+
public GraphQLParser.ROM Value { get; set; }
71+
}
6572
public class GraphQLDirective : GraphQLParser.AST.ASTNode, GraphQLParser.AST.INamedNode
6673
{
6774
public GraphQLDirective() { }
6875
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLArgument>? Arguments { get; set; }
6976
public override GraphQLParser.AST.ASTNodeKind Kind { get; }
7077
public GraphQLParser.AST.GraphQLName? Name { get; set; }
7178
}
72-
public class GraphQLDirectiveDefinition : GraphQLParser.AST.GraphQLTypeDefinition
79+
public class GraphQLDirectiveDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription
7380
{
7481
public GraphQLDirectiveDefinition() { }
7582
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLInputValueDefinition>? Arguments { get; set; }
@@ -86,20 +93,20 @@ namespace GraphQLParser.AST
8693
public void Dispose() { }
8794
protected virtual void Dispose(bool disposing) { }
8895
}
89-
public class GraphQLEnumTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
96+
public class GraphQLEnumTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
9097
{
9198
public GraphQLEnumTypeDefinition() { }
9299
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
93100
public override GraphQLParser.AST.ASTNodeKind Kind { get; }
94101
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLEnumValueDefinition>? Values { get; set; }
95102
}
96-
public class GraphQLEnumValueDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
103+
public class GraphQLEnumValueDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
97104
{
98105
public GraphQLEnumValueDefinition() { }
99106
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
100107
public override GraphQLParser.AST.ASTNodeKind Kind { get; }
101108
}
102-
public class GraphQLFieldDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
109+
public class GraphQLFieldDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
103110
{
104111
public GraphQLFieldDefinition() { }
105112
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLInputValueDefinition>? Arguments { get; set; }
@@ -138,22 +145,22 @@ namespace GraphQLParser.AST
138145
public GraphQLParser.AST.GraphQLSelectionSet? SelectionSet { get; set; }
139146
public GraphQLParser.AST.GraphQLNamedType? TypeCondition { get; set; }
140147
}
141-
public class GraphQLInputObjectTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
148+
public class GraphQLInputObjectTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
142149
{
143150
public GraphQLInputObjectTypeDefinition() { }
144151
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
145152
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLInputValueDefinition>? Fields { get; set; }
146153
public override GraphQLParser.AST.ASTNodeKind Kind { get; }
147154
}
148-
public class GraphQLInputValueDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
155+
public class GraphQLInputValueDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
149156
{
150157
public GraphQLInputValueDefinition() { }
151158
public GraphQLParser.AST.GraphQLValue? DefaultValue { get; set; }
152159
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
153160
public override GraphQLParser.AST.ASTNodeKind Kind { get; }
154161
public GraphQLParser.AST.GraphQLType? Type { get; set; }
155162
}
156-
public class GraphQLInterfaceTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
163+
public class GraphQLInterfaceTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
157164
{
158165
public GraphQLInterfaceTypeDefinition() { }
159166
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
@@ -214,7 +221,7 @@ namespace GraphQLParser.AST
214221
public GraphQLParser.AST.GraphQLName? Name { get; set; }
215222
public GraphQLParser.AST.GraphQLValue? Value { get; set; }
216223
}
217-
public class GraphQLObjectTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
224+
public class GraphQLObjectTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
218225
{
219226
public GraphQLObjectTypeDefinition() { }
220227
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
@@ -245,7 +252,7 @@ namespace GraphQLParser.AST
245252
public GraphQLParser.AST.OperationType Operation { get; set; }
246253
public GraphQLParser.AST.GraphQLNamedType? Type { get; set; }
247254
}
248-
public class GraphQLScalarTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
255+
public class GraphQLScalarTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
249256
{
250257
public GraphQLScalarTypeDefinition() { }
251258
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
@@ -280,13 +287,18 @@ namespace GraphQLParser.AST
280287
protected GraphQLTypeDefinition() { }
281288
public GraphQLParser.AST.GraphQLName? Name { get; set; }
282289
}
290+
public abstract class GraphQLTypeDefinitionWithDescription : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDescription
291+
{
292+
protected GraphQLTypeDefinitionWithDescription() { }
293+
public GraphQLParser.AST.GraphQLDescription? Description { get; set; }
294+
}
283295
public class GraphQLTypeExtensionDefinition : GraphQLParser.AST.GraphQLTypeDefinition
284296
{
285297
public GraphQLTypeExtensionDefinition() { }
286298
public GraphQLParser.AST.GraphQLObjectTypeDefinition? Definition { get; set; }
287299
public override GraphQLParser.AST.ASTNodeKind Kind { get; }
288300
}
289-
public class GraphQLUnionTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode
301+
public class GraphQLUnionTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinitionWithDescription, GraphQLParser.AST.IHasDirectivesNode
290302
{
291303
public GraphQLUnionTypeDefinition() { }
292304
public System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }
@@ -311,6 +323,10 @@ namespace GraphQLParser.AST
311323
public GraphQLParser.AST.GraphQLType? Type { get; set; }
312324
public GraphQLParser.AST.GraphQLVariable? Variable { get; set; }
313325
}
326+
public interface IHasDescription
327+
{
328+
GraphQLParser.AST.GraphQLDescription? Description { get; set; }
329+
}
314330
public interface IHasDirectivesNode
315331
{
316332
System.Collections.Generic.List<GraphQLParser.AST.GraphQLDirective>? Directives { get; set; }

0 commit comments

Comments
 (0)