...

Source file src/github.com/vektah/gqlparser/validator/rules/no_undefined_variables.go

Documentation: github.com/vektah/gqlparser/validator/rules

     1  package validator
     2  
     3  import (
     4  	"github.com/vektah/gqlparser/ast"
     5  	. "github.com/vektah/gqlparser/validator"
     6  )
     7  
     8  func init() {
     9  	AddRule("NoUndefinedVariables", func(observers *Events, addError AddErrFunc) {
    10  		observers.OnValue(func(walker *Walker, value *ast.Value) {
    11  			if walker.CurrentOperation == nil || value.Kind != ast.Variable || value.VariableDefinition != nil {
    12  				return
    13  			}
    14  
    15  			if walker.CurrentOperation.Name != "" {
    16  				addError(
    17  					Message(`Variable "%s" is not defined by operation "%s".`, value, walker.CurrentOperation.Name),
    18  					At(walker.CurrentOperation.Position),
    19  				)
    20  			} else {
    21  				addError(
    22  					Message(`Variable "%s" is not defined.`, value),
    23  					At(value.Position),
    24  				)
    25  			}
    26  		})
    27  	})
    28  }
    29  

View as plain text