protected override void VisitInterfaceTypeExtension(
     InterfaceTypeExtensionNode node,
     object context)
 {
     _types.Add(SchemaTypeReference.Create(
                    _interfaceTypeExtensionFactory.Create(_bindingLookup, node)));
 }
Beispiel #2
0
 private void VisitInterfaceTypeExtension(
     InterfaceTypeExtensionNode node,
     ISyntaxWriter writer)
 {
     writer.Write(Keywords.Extend);
     writer.WriteSpace();
     VisitInterfaceTypeDefinitionBase(node, writer);
 }
 protected override void VisitInterfaceTypeExtension(
     InterfaceTypeExtensionNode node,
     TypeDefinitionItem context)
 {
     VisitName(node.Name, context);
     VisitMany(node.Directives, context, VisitDirective);
     VisitMany(node.Fields, context, VisitFieldDefinition);
 }
Beispiel #4
0
        private static InterfaceTypeDefinitionNode AddFields(
            InterfaceTypeDefinitionNode typeDefinition,
            InterfaceTypeExtensionNode typeExtension)
        {
            IReadOnlyList <FieldDefinitionNode> fields =
                AddFields(typeDefinition.Fields, typeExtension.Fields);

            return(fields == typeDefinition.Fields
                ? typeDefinition
                : typeDefinition.WithFields(fields));
        }
Beispiel #5
0
 protected sealed override ISyntaxVisitorAction Enter(
     ISyntaxNode node,
     ISyntaxVisitorContext context)
 {
     return(node switch
     {
         DocumentNode n => Enter(n, context),
         OperationDefinitionNode n => Enter(n, context),
         VariableDefinitionNode n => Enter(n, context),
         VariableNode n => Enter(n, context),
         SelectionSetNode n => Enter(n, context),
         FieldNode n => Enter(n, context),
         ArgumentNode n => Enter(n, context),
         FragmentSpreadNode n => Enter(n, context),
         InlineFragmentNode n => Enter(n, context),
         FragmentDefinitionNode n => Enter(n, context),
         DirectiveNode n => Enter(n, context),
         NamedTypeNode n => Enter(n, context),
         ListTypeNode n => Enter(n, context),
         NonNullTypeNode n => Enter(n, context),
         ListValueNode n => Enter(n, context),
         ObjectValueNode n => Enter(n, context),
         ObjectFieldNode n => Enter(n, context),
         IValueNode n => Enter(n, context),
         SchemaDefinitionNode n => Enter(n, context),
         OperationTypeDefinitionNode n => Enter(n, context),
         ScalarTypeDefinitionNode n => Enter(n, context),
         ObjectTypeDefinitionNode n => Enter(n, context),
         FieldDefinitionNode n => Enter(n, context),
         InputValueDefinitionNode n => Enter(n, context),
         InterfaceTypeDefinitionNode n => Enter(n, context),
         UnionTypeDefinitionNode n => Enter(n, context),
         EnumTypeDefinitionNode n => Enter(n, context),
         EnumValueDefinitionNode n => Enter(n, context),
         InputObjectTypeDefinitionNode n => Enter(n, context),
         DirectiveDefinitionNode n => Enter(n, context),
         SchemaExtensionNode n => Enter(n, context),
         ScalarTypeExtensionNode n => Enter(n, context),
         ObjectTypeExtensionNode n => Enter(n, context),
         InterfaceTypeExtensionNode n => Enter(n, context),
         UnionTypeExtensionNode n => Enter(n, context),
         EnumTypeExtensionNode n => Enter(n, context),
         InputObjectTypeExtensionNode n => Enter(n, context),
         _ => throw new NotSupportedException()
     });
Beispiel #6
0
    public InterfaceTypeExtension Create(IDescriptorContext context, InterfaceTypeExtensionNode node)
    {
        var preserveSyntaxNodes = context.Options.PreserveSyntaxNodes;

        var typeDefinition = new InterfaceTypeDefinition(node.Name.Value);

        typeDefinition.BindTo = node.GetBindingValue();

        foreach (NamedTypeNode typeNode in node.Interfaces)
        {
            typeDefinition.Interfaces.Add(TypeReference.Create(typeNode));
        }

        SdlToTypeSystemHelper.AddDirectives(typeDefinition, node);

        DeclareFields(typeDefinition, node.Fields, preserveSyntaxNodes);

        return(InterfaceTypeExtension.CreateUnsafe(typeDefinition));
    }
 protected virtual ISyntaxVisitorAction Enter(
     InterfaceTypeExtensionNode node,
     ISyntaxVisitorContext context) =>
 DefaultAction;
Beispiel #8
0
 protected virtual void VisitInterfaceTypeExtension(InterfaceTypeExtensionNode node)
 {
 }