Sha256: 07ab17d5fdd565665862074abf832b2591b008623c50a1737fcdd2478d909d9f
Contents?: true
Size: 1007 Bytes
Versions: 2
Compression:
Stored size: 1007 Bytes
Contents
module GraphQL module StaticValidation class VariablesAreInputTypes include GraphQL::StaticValidation::Message::MessageHelper def validate(context) context.visitor[GraphQL::Language::Nodes::VariableDefinition] << ->(node, parent) { validate_is_input_type(node, context) } end private def validate_is_input_type(node, context) type_name = get_type_name(node.type) type = context.schema.types.fetch(type_name, nil) if type.nil? context.errors << message("#{type_name} isn't a defined input type (on $#{node.name})", node, context: context) elsif !type.kind.input? context.errors << message("#{type.name} isn't a valid input type (on $#{node.name})", node, context: context) end end def get_type_name(ast_type) if ast_type.respond_to?(:of_type) get_type_name(ast_type.of_type) else ast_type.name end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
graphql-1.0.0 | lib/graphql/static_validation/rules/variables_are_input_types.rb |
graphql-0.19.4 | lib/graphql/static_validation/rules/variables_are_input_types.rb |