public InlineFragment InlineFragment(GraphQLInlineFragment source) { var frag = new InlineFragment().WithLocation(source, _body); frag.Type = source.TypeCondition != null?NamedType(source.TypeCondition) : null; frag.Directives = Directives(source.Directives); frag.SelectionSet = SelectionSet(source.SelectionSet); return(frag); }
/// <summary> /// Converts an inline fragment node and its children. /// </summary> private static InlineFragment InlineFragment(GraphQLInlineFragment source) { return(new InlineFragment { SourceLocation = Convert(source.Location), CommentNode = Comment(source.Comment), Type = source.TypeCondition != null?NamedType(source.TypeCondition) : null, Directives = Directives(source.Directives), SelectionSet = SelectionSet(source.SelectionSet) }); }
public override GraphQLInlineFragment BeginVisitInlineFragment(GraphQLInlineFragment inlineFragment) { if (inlineFragment.TypeCondition != null) { this.typeStack.Push(this.SchemaRepository.GetSchemaOutputTypeByName(inlineFragment.TypeCondition.Name.Value)); } else { this.typeStack.Push(this.GetLastType()); } return(base.BeginVisitInlineFragment(inlineFragment)); }
private bool DoesFragmentConditionMatch(GraphQLObjectType runtimeType, GraphQLInlineFragment fragment) { if (fragment.TypeCondition == null) { return(true); } if (fragment.TypeCondition.Name.Value == runtimeType.Name) { return(true); } return(false); }
public override GraphQLInlineFragment BeginVisitInlineFragment(GraphQLInlineFragment inlineFragment) { if (inlineFragment.TypeCondition != null) { var type = this.schemaRepository.GetSchemaInputTypeByName(inlineFragment.TypeCondition.Name.Value); if (type != null) { var errorMessage = this.ComposeInlineFragmentOnNonCompositeErrorMessage(type); this.Errors.Add(new GraphQLException(errorMessage, new[] { inlineFragment.TypeCondition })); } } return(base.BeginVisitInlineFragment(inlineFragment)); }
private string PrintInlineFragment(GraphQLInlineFragment node) { var typeCondition = PrintNamedType(node.TypeCondition); var directives = node.Directives?.Select(PrintDirective); var selectionSet = PrintSelectionSet(node.SelectionSet); return(Join(new[] { "...", Wrap("on ", typeCondition), Join(directives, " "), selectionSet }, " ")); }
private void CollectFragmentFields(GraphQLObjectType runtimeType, GraphQLInlineFragment fragment, Dictionary <string, IList <GraphQLFieldSelection> > fields) { if (!this.ShouldIncludeNode(fragment.Directives)) { return; } if (!this.DoesFragmentConditionMatch(runtimeType, fragment)) { return; } this.CollectFields(runtimeType, fragment.SelectionSet) .ToList().ForEach(e => fields.Add(e.Key, e.Value)); }
private bool DoesFragmentConditionMatch(GraphQLComplexType runtimeType, GraphQLInlineFragment fragment) { if (fragment.TypeCondition == null) { return(true); } var type = this.schemaRepository.GetSchemaOutputTypeByName(fragment.TypeCondition.Name.Value); if (type == runtimeType || TypeComparators.IsPossibleType(runtimeType, type, this.schemaRepository)) { return(true); } return(false); }
public override GraphQLInlineFragment BeginVisitInlineFragment( GraphQLInlineFragment inlineFragment) { { Tracker.EnterInlineFragment?.Invoke(inlineFragment); } var _ = base.BeginVisitInlineFragment(inlineFragment); { Tracker.LeaveInlineFragment?.Invoke(inlineFragment); } return(_); }
public virtual GraphQLInlineFragment BeginVisitInlineFragment( GraphQLInlineFragment inlineFragment) { if (inlineFragment.TypeCondition != null) { BeginVisitNode(inlineFragment.TypeCondition); } if (inlineFragment.Directives != null) { BeginVisitDirectives(inlineFragment.Directives); } if (inlineFragment.SelectionSet != null) { BeginVisitSelectionSet(inlineFragment.SelectionSet); } return(inlineFragment); }
private void ValidateInlineFragmentTypes(GraphQLInlineFragment node, GraphQLBaseType fragmentType, GraphQLBaseType parentType) { if (parentType is GraphQLList) { parentType = ((GraphQLList)parentType).MemberType; this.ValidateInlineFragmentTypes(node, fragmentType, parentType); } else if (fragmentType != null && parentType != null && !this.DoTypesOverlap(fragmentType, parentType)) { this.Errors.Add( new GraphQLException( this.GetIncompatibleTypeInAnonymousFragmentMessage(fragmentType, parentType), new[] { node })); } }
/// <summary> /// Initializes a new instance with the specified properties. /// </summary> public FragmentsOnCompositeTypesError(ValidationContext context, GraphQLInlineFragment node) : base(context.Document.Source, NUMBER, InlineFragmentOnNonCompositeErrorMessage(node.TypeCondition !.Type.Print()), node.TypeCondition !.Type)
public virtual GraphQLInlineFragment EndVisitInlineFragment(GraphQLInlineFragment inlineFragment) { return(inlineFragment); }
public SetSelection(GraphQLInlineFragment op) : this(op.SelectionSet) { this.TypeCondition = op.TypeCondition; }
/// <summary> /// Initializes a new instance with the specified properties. /// </summary> public PossibleFragmentSpreadsError(ValidationContext context, GraphQLInlineFragment node, IGraphType parentType, IGraphType fragType) : base(context.Document.Source, NUMBER, TypeIncompatibleAnonSpreadMessage(parentType.ToString() !, fragType.ToString() !), node)
public override GraphQLInlineFragment EndVisitInlineFragment(GraphQLInlineFragment inlineFragment) { this.typeStack.Pop(); return(base.EndVisitInlineFragment(inlineFragment)); }
protected override ValueTask VisitInlineFragmentAsync(GraphQLInlineFragment inlineFragment, GetRecursivelyReferencedFragmentsVisitorContext context) { return(VisitAsync(inlineFragment.SelectionSet, context)); }