private IEnumerable <IDirective> GetFieldSelectionDirectives( ObjectField field, FieldNode selection) { foreach (DirectiveNode directive in selection.Directives) { if (_schema.TryGetDirectiveType(directive.Name.Value, out DirectiveType directiveType) && directiveType.IsExecutable) { yield return(Directive.FromDescription( directiveType, new DirectiveDefinition(directive), field)); } } }
private IEnumerable <IDirective> GetFieldSelectionDirectives( IObjectField field, FieldNode selection) { for (var i = 0; i < selection.Directives.Count; i++) { DirectiveNode directive = selection.Directives[i]; if (_schema.TryGetDirectiveType(directive.Name.Value, out DirectiveType? directiveType) && directiveType.HasMiddleware) { yield return(Directive.FromDescription( directiveType, new DirectiveDefinition(directive), field)); } } }
private bool TryCompleteDirective( ITypeCompletionContext context, DirectiveDefinition definition, ISet <string> processed, [NotNullWhen(true)] out Directive?directive) { if (!context.TryGetDirectiveType( definition.Reference, out DirectiveType? directiveType)) { directive = null; return(false); } if (!processed.Add(directiveType.Name) && !directiveType.IsRepeatable) { context.ReportError( DirectiveCollection_DirectiveIsUnique( directiveType, context.Type, definition.ParsedDirective, _source)); directive = null; return(false); } if (directiveType.Locations.Contains(_location)) { directive = Directive.FromDescription(directiveType, definition, _source); return(true); } context.ReportError( DirectiveCollection_LocationNotAllowed( directiveType, _location, context.Type, definition.ParsedDirective, _source)); directive = null; return(false); }