class GraphQL::StaticValidation::FragmentsAreFinite

Public Instance Methods

validate(context) click to toggle source
# File lib/graphql/static_validation/rules/fragments_are_finite.rb, line 6
def validate(context)
  context.visitor[GraphQL::Language::Nodes::Document].leave << ->(_n, _p) do
    dependency_map = context.dependencies
    dependency_map.cyclical_definitions.each do |defn|
      if defn.node.is_a?(GraphQL::Language::Nodes::FragmentDefinition)
        context.errors << message("Fragment #{defn.name} contains an infinite loop", defn.node, path: defn.path)
      end
    end
  end
end