...

Source file src/github.com/vektah/gqlparser/validator/rules/no_unused_fragments.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("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