Sha256: dee0635f587dd098c398aa7534b9b23d48238b34f156fb201080a59c654963f5

Contents?: true

Size: 795 Bytes

Versions: 1

Compression:

Stored size: 795 Bytes

Contents

# frozen_string_literal: true
module GraphQL
  module StaticValidation
    module FragmentTypesExist
      def on_fragment_definition(node, _parent)
        if validate_type_exists(node)
          super
        end
      end

      def on_inline_fragment(node, _parent)
        if validate_type_exists(node)
          super
        end
      end

      private

      def validate_type_exists(fragment_node)
        if !fragment_node.type
          true
        else
          type_name = fragment_node.type.name
          type = context.warden.get_type(type_name)
          if type.nil?
            add_error("No such type #{type_name}, so it can't be a fragment condition", fragment_node)
            false
          else
            true
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
graphql-1.9.0.pre1 lib/graphql/static_validation/rules/fragment_types_exist.rb