1package validator
2
3import (
4 "github.com/vektah/gqlparser/ast"
5 . "github.com/vektah/gqlparser/validator"
6)
7
8func init() {
9 AddRule("NoUnusedVariables", func(observers *Events, addError AddErrFunc) {
10 observers.OnOperation(func(walker *Walker, operation *ast.OperationDefinition) {
11 for _, varDef := range operation.VariableDefinitions {
12 if varDef.Used {
13 continue
14 }
15
16 if operation.Name != "" {
17 addError(
18 Message(`Variable "$%s" is never used in operation "%s".`, varDef.Variable, operation.Name),
19 At(varDef.Position),
20 )
21 } else {
22 addError(
23 Message(`Variable "$%s" is never used.`, varDef.Variable),
24 At(varDef.Position),
25 )
26 }
27 }
28 })
29 })
30}