1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
# frozen_string_literal: true
module GraphQL
module StaticValidation
module FragmentsAreFinite
def on_document(_n, _p)
super
dependency_map = context.dependencies
dependency_map.cyclical_definitions.each do |defn|
if defn.node.is_a?(GraphQL::Language::Nodes::FragmentDefinition)
add_error(GraphQL::StaticValidation::FragmentsAreFiniteError.new(
"Fragment #{defn.name} contains an infinite loop",
nodes: defn.node,
path: defn.path,
name: defn.name
))
end
end
end
end
end
end
|