module GraphQL::Schema::Loader
def load(introspection_result)
-
(GraphQL::Schema)
- the schema described by `input`
Parameters:
-
introspection_result
(Hash
) -- A response from {GraphQL::Introspection::INTROSPECTION_QUERY}
def load(introspection_result) schema = introspection_result.fetch("data").fetch("__schema") types = {} type_resolver = -> (type) { -> { resolve_type(types, type) } } schema.fetch("types").each do |type| next if type.fetch("name").start_with?("__") type_object = define_type(type, type_resolver) types[type_object.name] = type_object end kargs = { :orphan_types => types.values } [:query, :mutation, :subscription].each do |root| type = schema["#{root}Type"] kargs[root] = types.fetch(type.fetch("name")) if type end Schema.define(**kargs) end