class GraphQL::StaticValidation::FragmentTypesExist

Constants

FRAGMENTS_ON_TYPES

Public Instance Methods

validate(context) click to toggle source
# File lib/graphql/static_validation/rules/fragment_types_exist.rb, line 12
def validate(context)
  FRAGMENTS_ON_TYPES.each do |node_class|
    context.visitor[node_class] << ->(node, parent) { validate_type_exists(node, context) }
  end
end

Private Instance Methods

validate_type_exists(node, context) click to toggle source
# File lib/graphql/static_validation/rules/fragment_types_exist.rb, line 20
def validate_type_exists(node, context)
  return unless node.type
  type_name = node.type.name
  type = context.warden.get_type(type_name)
  if type.nil?
    context.errors << message("No such type #{type_name}, so it can't be a fragment condition", node, context: context)
    GraphQL::Language::Visitor::SKIP
  end
end