Sha256: be7d232af1e66cfdae46ce61ee092ea1b096b4caf694ea09da60b1a66c571a12
Contents?: true
Size: 968 Bytes
Versions: 1
Compression:
Stored size: 968 Bytes
Contents
module GraphQL module StaticValidation class FragmentsAreOnCompositeTypes include GraphQL::StaticValidation::Message::MessageHelper HAS_TYPE_CONDITION = [ GraphQL::Language::Nodes::FragmentDefinition, GraphQL::Language::Nodes::InlineFragment, ] def validate(context) HAS_TYPE_CONDITION.each do |node_class| context.visitor[node_class] << ->(node, parent) { validate_type_is_composite(node, context) } end end private def validate_type_is_composite(node, context) type_name = node.type return unless type_name type_def = context.schema.types[type_name] if type_def.nil? || !type_def.kind.composite? context.errors << message("Invalid fragment on type #{type_name} (must be Union, Interface or Object)", node, context: context) GraphQL::Language::Visitor::SKIP end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphql-0.19.4 | lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb |