...

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

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

     1  package validator
     2  
     3  import (
     4  	"github.com/vektah/gqlparser/v2/ast"
     5  
     6  	//nolint:revive // Validator rules each use dot imports for convenience.
     7  	. "github.com/vektah/gqlparser/v2/validator"
     8  )
     9  
    10  func init() {
    11  	AddRule("NoUnusedFragments", func(observers *Events, addError AddErrFunc) {
    12  
    13  		inFragmentDefinition := false
    14  		fragmentNameUsed := make(map[string]bool)
    15  
    16  		observers.OnFragmentSpread(func(walker *Walker, fragmentSpread *ast.FragmentSpread) {
    17  			if !inFragmentDefinition {
    18  				fragmentNameUsed[fragmentSpread.Name] = true
    19  			}
    20  		})
    21  
    22  		observers.OnFragment(func(walker *Walker, fragment *ast.FragmentDefinition) {
    23  			inFragmentDefinition = true
    24  			if !fragmentNameUsed[fragment.Name] {
    25  				addError(
    26  					Message(`Fragment "%s" is never used.`, fragment.Name),
    27  					At(fragment.Position),
    28  				)
    29  			}
    30  		})
    31  	})
    32  }
    33  

View as plain text