Sha256: ea0f8e1b99bf0cf0f7b01733b34f53ebd2cc0af470961ea710650604ef2bb70f

Contents?: true

Size: 931 Bytes

Versions: 181

Compression:

Stored size: 931 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(GraphQL::StaticValidation::FragmentTypesExistError.new(
              "No such type #{type_name}, so it can't be a fragment condition",
              nodes: fragment_node,
              type: type_name
            ))
            false
          else
            true
          end
        end
      end
    end
  end
end

Version data entries

181 entries across 181 versions & 2 rubygems

Version Path
graphql-1.11.12 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.1.15 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-1.11.11 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-1.12.25 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-1.13.24 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.0.32 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.1.14 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.2.17 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.2.16 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.1.13 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.3.7 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.3.6 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.3.5 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.0.31 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.3.2 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.3.1 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-1.13.23 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.3.0 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.2.14 lib/graphql/static_validation/rules/fragment_types_exist.rb
graphql-2.2.13 lib/graphql/static_validation/rules/fragment_types_exist.rb