diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index d31bae48..75a2efe1 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -4,9 +4,9 @@ name: CodeQL analysis on: push: - branches: [master, develop] + branches: [master, develop, v8] pull_request: - branches: [master, develop] + branches: [master, develop, v8] jobs: analyze: diff --git a/.github/workflows/publish-preview.yml b/.github/workflows/publish-preview.yml index 95e7c179..7722c47d 100644 --- a/.github/workflows/publish-preview.yml +++ b/.github/workflows/publish-preview.yml @@ -7,6 +7,7 @@ on: branches: - master - develop + - v8 paths: - src/** - .github/workflows/** diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d93a0f7b..298a51e1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,6 +5,7 @@ on: branches: - master - develop + - v8 paths: - src/** - .github/workflows/** diff --git a/src/GraphQLParser.ApiTests/GraphQLParser.approved.txt b/src/GraphQLParser.ApiTests/GraphQLParser.approved.txt index 8d1a0de1..2154ddbe 100644 --- a/src/GraphQLParser.ApiTests/GraphQLParser.approved.txt +++ b/src/GraphQLParser.ApiTests/GraphQLParser.approved.txt @@ -211,6 +211,7 @@ namespace GraphQLParser.AST public class GraphQLEnumValue : GraphQLParser.AST.GraphQLValue, GraphQLParser.AST.INamedNode { public GraphQLEnumValue() { } + public GraphQLEnumValue(GraphQLParser.AST.GraphQLName name) { } public override GraphQLParser.AST.ASTNodeKind Kind { get; } public GraphQLParser.AST.GraphQLName Name { get; set; } } @@ -240,6 +241,7 @@ namespace GraphQLParser.AST public class GraphQLField : GraphQLParser.AST.ASTNode, GraphQLParser.AST.IHasArgumentsNode, GraphQLParser.AST.IHasDirectivesNode, GraphQLParser.AST.IHasSelectionSetNode, GraphQLParser.AST.INamedNode, GraphQLParser.AST.ISelectionNode { public GraphQLField() { } + public GraphQLField(GraphQLParser.AST.GraphQLName name) { } public GraphQLParser.AST.GraphQLAlias? Alias { get; set; } public GraphQLParser.AST.GraphQLArguments? Arguments { get; set; } public GraphQLParser.AST.GraphQLDirectives? Directives { get; set; } @@ -420,6 +422,7 @@ namespace GraphQLParser.AST public class GraphQLObjectField : GraphQLParser.AST.ASTNode, GraphQLParser.AST.INamedNode { public GraphQLObjectField() { } + public GraphQLObjectField(GraphQLParser.AST.GraphQLName name, GraphQLParser.AST.GraphQLValue value) { } public override GraphQLParser.AST.ASTNodeKind Kind { get; } public GraphQLParser.AST.GraphQLName Name { get; set; } public GraphQLParser.AST.GraphQLValue Value { get; set; } @@ -427,6 +430,7 @@ namespace GraphQLParser.AST public class GraphQLObjectTypeDefinition : GraphQLParser.AST.GraphQLTypeDefinition, GraphQLParser.AST.IHasDirectivesNode, GraphQLParser.AST.IHasFieldsDefinitionNode, GraphQLParser.AST.IHasInterfacesNode { public GraphQLObjectTypeDefinition() { } + public GraphQLObjectTypeDefinition(GraphQLParser.AST.GraphQLName name) { } public GraphQLParser.AST.GraphQLDirectives? Directives { get; set; } public GraphQLParser.AST.GraphQLFieldsDefinition? Fields { get; set; } public GraphQLParser.AST.GraphQLImplementsInterfaces? Interfaces { get; set; } @@ -492,6 +496,7 @@ namespace GraphQLParser.AST public class GraphQLSelectionSet : GraphQLParser.AST.ASTNode { public GraphQLSelectionSet() { } + public GraphQLSelectionSet(System.Collections.Generic.List selections) { } public override GraphQLParser.AST.ASTNodeKind Kind { get; } public System.Collections.Generic.List Selections { get; set; } } @@ -520,6 +525,7 @@ namespace GraphQLParser.AST public abstract class GraphQLTypeDefinition : GraphQLParser.AST.ASTNode, GraphQLParser.AST.IHasDescriptionNode, GraphQLParser.AST.INamedNode { protected GraphQLTypeDefinition() { } + protected GraphQLTypeDefinition(GraphQLParser.AST.GraphQLName name) { } public GraphQLParser.AST.GraphQLDescription? Description { get; set; } public GraphQLParser.AST.GraphQLName Name { get; set; } } diff --git a/src/GraphQLParser/AST/Definitions/GraphQLObjectTypeDefinition.cs b/src/GraphQLParser/AST/Definitions/GraphQLObjectTypeDefinition.cs index 205ebd36..1f49e436 100644 --- a/src/GraphQLParser/AST/Definitions/GraphQLObjectTypeDefinition.cs +++ b/src/GraphQLParser/AST/Definitions/GraphQLObjectTypeDefinition.cs @@ -8,6 +8,21 @@ namespace GraphQLParser.AST; [DebuggerDisplay("GraphQLObjectTypeDefinition: {Name}")] public class GraphQLObjectTypeDefinition : GraphQLTypeDefinition, IHasDirectivesNode, IHasInterfacesNode, IHasFieldsDefinitionNode { + /// + /// Creates a new instance of . + /// + public GraphQLObjectTypeDefinition() + { + } + + /// + /// Creates a new instance of . + /// + public GraphQLObjectTypeDefinition(GraphQLName name) + : base(name) + { + } + /// public override ASTNodeKind Kind => ASTNodeKind.ObjectTypeDefinition; diff --git a/src/GraphQLParser/AST/Definitions/GraphQLTypeDefinition.cs b/src/GraphQLParser/AST/Definitions/GraphQLTypeDefinition.cs index 97a6f9c1..41fbaebe 100644 --- a/src/GraphQLParser/AST/Definitions/GraphQLTypeDefinition.cs +++ b/src/GraphQLParser/AST/Definitions/GraphQLTypeDefinition.cs @@ -5,9 +5,25 @@ namespace GraphQLParser.AST; /// public abstract class GraphQLTypeDefinition : ASTNode, INamedNode, IHasDescriptionNode { + /// + /// Creates a new instance of . + /// + protected GraphQLTypeDefinition() + { + Name = null!; + } + + /// + /// Creates a new instance of . + /// + protected GraphQLTypeDefinition(GraphQLName name) + { + Name = name; + } + /// public GraphQLDescription? Description { get; set; } /// - public GraphQLName Name { get; set; } = null!; + public GraphQLName Name { get; set; } } diff --git a/src/GraphQLParser/AST/GraphQLField.cs b/src/GraphQLParser/AST/GraphQLField.cs index 795e7609..9e2ab5e6 100644 --- a/src/GraphQLParser/AST/GraphQLField.cs +++ b/src/GraphQLParser/AST/GraphQLField.cs @@ -5,6 +5,22 @@ namespace GraphQLParser.AST; /// public class GraphQLField : ASTNode, ISelectionNode, IHasSelectionSetNode, IHasDirectivesNode, IHasArgumentsNode, INamedNode { + /// + /// Creates a new instance of . + /// + public GraphQLField() + { + Name = null!; + } + + /// + /// Creates a new instance of . + /// + public GraphQLField(GraphQLName name) + { + Name = name; + } + /// public override ASTNodeKind Kind => ASTNodeKind.Field; @@ -14,7 +30,7 @@ public class GraphQLField : ASTNode, ISelectionNode, IHasSelectionSetNode, IHasD public GraphQLAlias? Alias { get; set; } /// - public GraphQLName Name { get; set; } = null!; + public GraphQLName Name { get; set; } /// /// Arguments for this field. diff --git a/src/GraphQLParser/AST/GraphQLObjectField.cs b/src/GraphQLParser/AST/GraphQLObjectField.cs index ca4b08a7..8d7dd671 100644 --- a/src/GraphQLParser/AST/GraphQLObjectField.cs +++ b/src/GraphQLParser/AST/GraphQLObjectField.cs @@ -5,16 +5,34 @@ namespace GraphQLParser.AST; /// public class GraphQLObjectField : ASTNode, INamedNode { + /// + /// Creates a new instance of . + /// + public GraphQLObjectField() + { + Name = null!; + Value = null!; + } + + /// + /// Creates a new instance of . + /// + public GraphQLObjectField(GraphQLName name, GraphQLValue value) + { + Name = name; + Value = value; + } + /// public override ASTNodeKind Kind => ASTNodeKind.ObjectField; /// - public GraphQLName Name { get; set; } = null!; + public GraphQLName Name { get; set; } /// /// Value of the field represented as a nested AST node. /// - public GraphQLValue Value { get; set; } = null!; + public GraphQLValue Value { get; set; } } internal sealed class GraphQLObjectFieldWithLocation : GraphQLObjectField diff --git a/src/GraphQLParser/AST/GraphQLSelectionSet.cs b/src/GraphQLParser/AST/GraphQLSelectionSet.cs index efdf1536..a44444da 100644 --- a/src/GraphQLParser/AST/GraphQLSelectionSet.cs +++ b/src/GraphQLParser/AST/GraphQLSelectionSet.cs @@ -5,6 +5,22 @@ namespace GraphQLParser.AST; /// public class GraphQLSelectionSet : ASTNode { + /// + /// Creates a new instance of . + /// + public GraphQLSelectionSet() + { + Selections = null!; + } + + /// + /// Creates a new instance of . + /// + public GraphQLSelectionSet(List selections) + { + Selections = selections; + } + /// public override ASTNodeKind Kind => ASTNodeKind.SelectionSet; @@ -18,7 +34,7 @@ public class GraphQLSelectionSet : ASTNode /// /// /// - public List Selections { get; set; } = null!; + public List Selections { get; set; } } internal sealed class GraphQLSelectionSetWithLocation : GraphQLSelectionSet diff --git a/src/GraphQLParser/AST/Values/GraphQLEnumValue.cs b/src/GraphQLParser/AST/Values/GraphQLEnumValue.cs index 78a2a7e2..2e93ea84 100644 --- a/src/GraphQLParser/AST/Values/GraphQLEnumValue.cs +++ b/src/GraphQLParser/AST/Values/GraphQLEnumValue.cs @@ -8,11 +8,27 @@ namespace GraphQLParser.AST; [DebuggerDisplay("GraphQLEnumValue: {Name}")] public class GraphQLEnumValue : GraphQLValue, INamedNode { + /// + /// Creates a new instance of . + /// + public GraphQLEnumValue() + { + Name = null!; + } + + /// + /// Creates a new instance of . + /// + public GraphQLEnumValue(GraphQLName name) + { + Name = name; + } + /// public override ASTNodeKind Kind => ASTNodeKind.EnumValue; /// - public GraphQLName Name { get; set; } = null!; + public GraphQLName Name { get; set; } } internal sealed class GraphQLEnumValueWithLocation : GraphQLEnumValue