public IEnumerable <VariableUsage> GetUsages(string query) { var document = this.parser.Parse(new Source(query)); this.Visit(document); return(VariableUsagesProvider.Get(this.operation, document, this.schema)); }
public override GraphQLOperationDefinition EndVisitOperationDefinition(GraphQLOperationDefinition definition) { var variableUsages = VariableUsagesProvider.Get(definition, this.document, this.Schema); foreach (var usage in variableUsages) { this.VerifyUsage(usage); } return(base.EndVisitOperationDefinition(definition)); }
public override GraphQLOperationDefinition EndVisitOperationDefinition(GraphQLOperationDefinition definition) { var variableUsages = VariableUsagesProvider.Get(definition, this.document, this.Schema); var operationName = definition.Name != null ? definition.Name.Value : null; foreach (var variableDefinition in this.variableDefinitions) { var variableName = variableDefinition.Variable.Name.Value; if (!variableUsages.Any(e => e.Variable.Name.Value == variableName)) { this.Errors.Add(new GraphQLException(this.GetUnusedVariablesMessage(variableName, operationName), new[] { variableDefinition })); } } return(base.EndVisitOperationDefinition(definition)); }