Sha256: e4e23af8ee6a02947006392bb44c9bba13d0cf03500ba41b4ce2115eb2ae0962

Contents?: true

Size: 1.32 KB

Versions: 52

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true
module GraphQL
  module StaticValidation
    class NoDefinitionsArePresent
      include GraphQL::StaticValidation::Message::MessageHelper

      def validate(context)
        schema_definition_nodes = []
        register_node = ->(node, _p) {
          schema_definition_nodes << node
          GraphQL::Language::Visitor::SKIP
        }

        visitor = context.visitor
        visitor[GraphQL::Language::Nodes::DirectiveDefinition] << register_node
        visitor[GraphQL::Language::Nodes::SchemaDefinition] << register_node
        visitor[GraphQL::Language::Nodes::ScalarTypeDefinition] << register_node
        visitor[GraphQL::Language::Nodes::ObjectTypeDefinition] << register_node
        visitor[GraphQL::Language::Nodes::InputObjectTypeDefinition] << register_node
        visitor[GraphQL::Language::Nodes::InterfaceTypeDefinition] << register_node
        visitor[GraphQL::Language::Nodes::UnionTypeDefinition] << register_node
        visitor[GraphQL::Language::Nodes::EnumTypeDefinition] << register_node

        visitor[GraphQL::Language::Nodes::Document].leave << ->(node, _p) {
          if schema_definition_nodes.any?
            context.errors << message(%|Query cannot contain schema definitions|, schema_definition_nodes, context: context)
          end
        }
      end
    end
  end
end

Version data entries

52 entries across 52 versions & 1 rubygems

Version Path
graphql-1.8.4 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.3 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.2 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.1 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre11 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre10 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.7.14 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre9 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre8 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.7.13 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre7 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.7.12 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.7.11 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.7.10 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre6 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre5 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.7.9 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre4 lib/graphql/static_validation/rules/no_definitions_are_present.rb
graphql-1.8.0.pre3 lib/graphql/static_validation/rules/no_definitions_are_present.rb