Provided by: libgraphql-perl_0.54-1_all bug

NAME

       GraphQL::Schema - GraphQL schema object

SYNOPSIS

         use GraphQL::Schema;
         use GraphQL::Type::Object;
         my $schema = GraphQL::Schema->new(
           query => GraphQL::Type::Object->new(
             name => 'Query',
             fields => {
               getObject => {
                 type => $interfaceType,
                 resolve => sub {
                   return {};
                 }
               }
             }
           )
         );

DESCRIPTION

       Class implementing GraphQL schema.

ATTRIBUTES

   query
   mutation
   subscription
   types
       Defaults to the types returned by "registered" in GraphQL::Plugin::Type.  Note that this
       includes the standard scalar types always loaded by GraphQL::Type::Scalar. If you wish to
       supply an overriding value for this attribute, bear that in mind.

   directives

METHODS

   name2type
       In this schema, returns a hash-ref mapping all types' names to their type object.

   get_possible_types($abstract_type)
       In this schema, get all of either the implementation types (if interface) or possible
       types (if union) of the $abstract_type.

   is_possible_type($abstract_type, $possible_type)
       In this schema, is the given $possible_type either an implementation (if interface) or a
       possibility (if union) of the $abstract_type?

   assert_object_implements_interface($type, $iface)
       In this schema, does the given $type implement interface $iface? If not, throw exception.

   from_ast($ast[, \%kind2class])
       Class method. Takes AST (array-ref of hash-refs) made by "parse" in
       GraphQL::Language::Parser and returns a schema object. Will not be a complete schema since
       it will have only default resolvers.

       If "\%kind2class" is given, it will override the default mapping of SDL keywords to Perl
       classes. This is probably most useful for GraphQL::Type::Object. The default is available
       as %GraphQL::Schema::KIND2CLASS. E.g.

         my $schema = GraphQL::Schema->from_ast(
           $doc,
           { %GraphQL::Schema::KIND2CLASS, type => 'GraphQL::Type::Object::DBIC' }
         );

       Makes available the additional types returned by "registered" in GraphQL::Plugin::Type.

   from_doc($doc[, \%kind2class])
       Class method. Takes text that is a Schema Definition Language (SDL) (aka Interface
       Definition Language) document and returns a schema object. Will not be a complete schema
       since it will have only default resolvers.

       As of v0.32, this accepts both old-style "meaningful comments" and new-style string
       values, as field or type descriptions.

       If "\%kind2class" is given, it will override the default mapping of SDL keywords to Perl
       classes. This is probably most useful for GraphQL::Type::Object. The default is available
       as %GraphQL::Schema::KIND2CLASS.

   to_doc($doc)
       Returns Schema Definition Language (SDL) document that describes this schema object.

       As of v0.32, this produces the new-style descriptions that are string values, rather than
       old-style "meaningful comments".

       As of v0.33, will not return a description of types supplied with the attribute "types".
       Obviously, by default this includes types returned by "registered" in
       GraphQL::Plugin::Type.

   name2directive
       In this schema, returns a hash-ref mapping all directives' names to their directive
       object.

FUNCTIONS

   lookup_type($typedef, $name2type)
       Turns given AST fragment into a type.

       If the hash-ref's "type" member is a string, will return a type of that name.

       If an array-ref, first element must be either "list" or "non_null", second will be a
       recursive AST fragment, which will be passed into a recursive call. The result will then
       have the modifier method ("list" or "non_null") called, and that will be returned.