protected virtual InterfaceGraphType ToInterfaceType(GraphQLInterfaceTypeDefinition interfaceDef) { var name = (string)interfaceDef.Name.Value; var typeConfig = Types.For(name); AssertKnownType(typeConfig); var type = new InterfaceGraphType { Name = name, Description = typeConfig.Description ?? interfaceDef.Description?.Value.ToString() ?? interfaceDef.Comment?.Text.ToString(), ResolveType = typeConfig.ResolveType, }.SetAstType(interfaceDef); OverrideDeprecationReason(type, typeConfig.DeprecationReason); typeConfig.CopyMetadataTo(type); if (interfaceDef.Fields != null) { foreach (var f in interfaceDef.Fields) { type.AddField(ToFieldType(type.Name, f)); } } return(type); }
protected override InterfaceGraphType ToInterfaceType(GraphQLInterfaceTypeDefinition interfaceDef) { var type = base.ToInterfaceType(interfaceDef); type.ResolveType = _ => null; return(type); }
public static bool AstTypeHasFields(this IProvideMetadata type) { return(GetAstType <ASTNode>(type) switch { GraphQLObjectTypeDefinition otd => otd.Fields?.Any() ?? false, GraphQLInterfaceTypeDefinition itd => itd.Fields?.Any() ?? false, _ => false });
private string PrintInterfaceTypeDefinition(GraphQLInterfaceTypeDefinition node) { var name = PrintName(node.Name); var directives = node.Directives?.Select(PrintDirective); var fields = node.Fields?.Select(PrintFieldDefinition); return(Join(new[] { "interface", name, Join(directives, " "), Block(fields) ?? "{ }" }, " ")); }
protected virtual InterfaceGraphType ToInterfaceType(GraphQLInterfaceTypeDefinition interfaceDef) { var typeConfig = Types.For(interfaceDef.Name.Value); var type = new InterfaceGraphType(); type.Name = interfaceDef.Name.Value; type.Description = typeConfig.Description; type.ResolveType = typeConfig.ResolveType; CopyMetadata(type, typeConfig); var fields = interfaceDef.Fields.Select(f => ToFieldType(type.Name, f)); fields.Apply(f => type.AddField(f)); return(type); }
protected virtual InterfaceGraphType ToInterfaceType(GraphQLInterfaceTypeDefinition interfaceDef) { var typeConfig = Types.For(interfaceDef.Name.Value); var type = new InterfaceGraphType { Name = interfaceDef.Name.Value, Description = typeConfig.Description ?? interfaceDef.Comment?.Text, ResolveType = typeConfig.ResolveType }.SetAstType(interfaceDef); VisitNode(type, v => v.VisitInterface(type)); CopyMetadata(type, typeConfig); var fields = interfaceDef.Fields.Select(f => ToFieldType(type.Name, f)); fields.Apply(f => type.AddField(f)); return(type); }
protected virtual InterfaceGraphType ToInterfaceType(GraphQLInterfaceTypeDefinition interfaceDef) { var typeConfig = Types.For(interfaceDef.Name.Value); var type = new InterfaceGraphType { Name = interfaceDef.Name.Value, Description = typeConfig.Description ?? interfaceDef.Comment?.Text, ResolveType = typeConfig.ResolveType }; ApplyDeprecatedDirective(interfaceDef.Directives, reason => type.DeprecationReason = typeConfig.DeprecationReason ?? reason); CopyMetadata(type, typeConfig); var fields = interfaceDef.Fields.Select(f => ToFieldType(type.Name, f)); fields.Apply(f => type.AddField(f)); return(type); }
public virtual GraphQLInterfaceTypeDefinition BeginVisitInterfaceTypeDefinition(GraphQLInterfaceTypeDefinition node) { if (node.Directives != null) { this.BeginVisitNodeCollection(node.Directives); } if (node.Fields != null) { this.BeginVisitNodeCollection(node.Fields); } return(node); }
public InterfaceType(GraphQLInterfaceTypeDefinition definition) { this.definition = definition; this.Name = definition.Name?.Value; }