Sha256: ae539ec85ba79b8a8e36aea439fc964c349e55d34b053da449de85e9ce69c284
Contents?: true
Size: 1.57 KB
Versions: 7
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true module GraphQL module StaticValidation # Implement validate_node class ArgumentsValidator module ArgumentsValidatorHelpers private def parent_name(parent, type_defn) if parent.is_a?(GraphQL::Language::Nodes::Field) parent.alias || parent.name elsif parent.is_a?(GraphQL::Language::Nodes::InputObject) type_defn.name else parent.name end end def node_type(parent) parent.class.name.split("::").last end end include ArgumentsValidatorHelpers include GraphQL::StaticValidation::Message::MessageHelper def validate(context) visitor = context.visitor visitor[GraphQL::Language::Nodes::Argument] << ->(node, parent) { case parent when GraphQL::Language::Nodes::InputObject arg_defn = context.argument_definition if arg_defn.nil? return else parent_defn = arg_defn.type.unwrap if !parent_defn.is_a?(GraphQL::InputObjectType) return end end when GraphQL::Language::Nodes::Directive parent_defn = context.schema.directives[parent.name] when GraphQL::Language::Nodes::Field parent_defn = context.field_definition else raise "Unexpected argument parent: #{parent.class} (##{parent})" end validate_node(parent, node, parent_defn, context) } end end end end
Version data entries
7 entries across 7 versions & 1 rubygems