Sha256: 5d7d694a298f4bf0d957fbca59b7ea6e6b844e604ae2b7dcf84ebb488a471453

Contents?: true

Size: 948 Bytes

Versions: 34

Compression:

Stored size: 948 Bytes

Contents

# frozen_string_literal: true
module GraphQL
  module StaticValidation
    class ArgumentLiteralsAreCompatible < GraphQL::StaticValidation::ArgumentsValidator
      def validate_node(parent, node, defn, context)
        return if node.value.is_a?(GraphQL::Language::Nodes::VariableIdentifier)
        arg_defn = defn.arguments[node.name]
        return unless arg_defn

        begin
          valid = context.valid_literal?(node.value, arg_defn.type)
        rescue GraphQL::CoercionError => err
          error_message = err.message
        end

        return if valid

        error_message ||= begin
          kind_of_node = node_type(parent)
          error_arg_name = parent_name(parent, defn)
          "Argument '#{node.name}' on #{kind_of_node} '#{error_arg_name}' has an invalid value. Expected type '#{arg_defn.type}'."
        end

        context.errors << message(error_message, parent, context: context)
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
graphql-1.8.11 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.10 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.9 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.8 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.7 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.6 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.5 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.4 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.3 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.2 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.1 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.0 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.0.pre11 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.0.pre10 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.7.14 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.0.pre9 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.0.pre8 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.7.13 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.8.0.pre7 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
graphql-1.7.12 lib/graphql/static_validation/rules/argument_literals_are_compatible.rb