Module: GraphQL::StaticValidation::FragmentsAreUsed

Defined in:
lib/graphql/static_validation/rules/fragments_are_used.rb

Instance Method Summary collapse

Instance Method Details

#on_document(node, parent) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/graphql/static_validation/rules/fragments_are_used.rb', line 5

def on_document(node, parent)
  super
  dependency_map = context.dependencies
  dependency_map.unmet_dependencies.each do |op_defn, spreads|
    spreads.each do |fragment_spread|
      add_error(GraphQL::StaticValidation::FragmentsAreUsedError.new(
        "Fragment #{fragment_spread.name} was used, but not defined",
        nodes: fragment_spread.node,
        path: fragment_spread.path,
        fragment: fragment_spread.name
      ))
    end
  end

  dependency_map.unused_dependencies.each do |fragment|
    if fragment && !fragment.name.nil?
      add_error(GraphQL::StaticValidation::FragmentsAreUsedError.new(
        "Fragment #{fragment.name} was defined, but not used",
        nodes: fragment.node,
        path: fragment.path,
        fragment: fragment.name
      ))
    end
  end
end