Class: GraphQL::Introspection::EntryPoints

Inherits:
BaseObject show all
Defined in:
lib/graphql/introspection/entry_points.rb

Constant Summary

Constants included from Schema::Member::HasFields

Schema::Member::HasFields::CONFLICT_FIELD_NAMES, Schema::Member::HasFields::GRAPHQL_RUBY_KEYWORDS, Schema::Member::HasFields::RUBY_KEYWORDS

Constants included from Schema::Member::GraphQLTypeNames

Schema::Member::GraphQLTypeNames::Boolean, Schema::Member::GraphQLTypeNames::ID, Schema::Member::GraphQLTypeNames::Int

Instance Attribute Summary

Attributes inherited from Schema::Object

#context, #object

Instance Method Summary collapse

Methods inherited from BaseObject

field

Methods inherited from Schema::Object

authorized_new, fields, implements, #initialize, interfaces, kind, own_interfaces, to_graphql

Methods included from Schema::Member::HasFields

#add_field, #field, #field_class, #fields, #get_field, #global_id_field, #own_fields

Methods included from Schema::Member::HasAstNode

#ast_node

Methods included from Schema::Member::HasPath

#path

Methods included from Schema::Member::RelayShortcuts

#connection_type, #connection_type_class, #edge_type, #edge_type_class

Methods included from Schema::Member::Scoped

#scope_items

Methods included from Schema::Member::TypeSystemHelpers

#kind, #list?, #non_null?, #to_list_type, #to_non_null_type, #to_type_signature

Methods included from Schema::Member::BaseDSLMethods::ConfigurationExtension

#inherited

Methods included from Schema::Member::BaseDSLMethods

#accessible?, #authorized?, #default_graphql_name, #description, #graphql_name, #introspection, #introspection?, #mutation, #name, #overridden_graphql_name, #to_graphql, #visible?

Methods included from Relay::TypeExtensions

#connection_type, #define_connection, #define_edge, #edge_type

Methods included from Schema::Member::CachedGraphQLDefinition

#graphql_definition, #initialize_copy, #type_class

Constructor Details

This class inherits a constructor from GraphQL::Schema::Object

Instance Method Details

#__schemaObject



10
11
12
13
14
15
# File 'lib/graphql/introspection/entry_points.rb', line 10

def __schema
  # Apply wrapping manually since this field isn't wrapped by instrumentation
  schema = @context.query.schema
  schema_type = schema.introspection_system.types["__Schema"]
  schema_type.type_class.authorized_new(schema, @context)
end

#__type(name:) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/graphql/introspection/entry_points.rb', line 17

def __type(name:)
  return unless context.warden.reachable_type?(name)
  type = context.warden.get_type(name)

  if type && context.interpreter? && !type.is_a?(Module)
    type = type.type_class || raise("Invariant: interpreter requires class-based type for #{name}")
  end

  # The interpreter provides this wrapping, other execution doesnt, so support both.
  if type && !context.interpreter?
    # Apply wrapping manually since this field isn't wrapped by instrumentation
    type_type = context.schema.introspection_system.types["__Type"]
    type = type_type.type_class.authorized_new(type, context)
  end
  type
end