...
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("NoUnusedFragments", func(observers *Events, addError AddErrFunc) {
10
11 inFragmentDefinition := false
12 fragmentNameUsed := make(map[string]bool)
13
14 observers.OnFragmentSpread(func(walker *Walker, fragmentSpread *ast.FragmentSpread) {
15 if !inFragmentDefinition {
16 fragmentNameUsed[fragmentSpread.Name] = true
17 }
18 })
19
20 observers.OnFragment(func(walker *Walker, fragment *ast.FragmentDefinition) {
21 inFragmentDefinition = true
22 if !fragmentNameUsed[fragment.Name] {
23 addError(
24 Message(`Fragment "%s" is never used.`, fragment.Name),
25 At(fragment.Position),
26 )
27 }
28 })
29 })
30 }
31
View as plain text