oracular (3) GraphQL::Type.3pm.gz

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

NAME

       GraphQL::Type - GraphQL type object

SYNOPSIS

           extends qw(GraphQL::Type);

DESCRIPTION

       Superclass for other GraphQL type classes to inherit from.

ENCODING

       Those Perl classes each implement a GraphQL type. Each item of GraphQL data has a GraphQL type.  Such an
       item of data can also be represented within Perl. Objects of that Perl class take responsibility for
       translating between the Perl representation and the "GraphQL representation". A "GraphQL representation"
       means something JSON-encodeable: an "object" (in Perl terms, a hash), an array (Perl: array-reference),
       string, number, boolean, or null.

       See "METHODS" for generic methods to translate back and forth between these worlds.

       Code that you provide to do this translation must return things that can be JSON-encoded, not things that
       have been so encoded: this means, among other things, do not surround strings in """, and for boolean
       values, use the mechanism in JSON::MaybeXS: "JSON-"true> etc.

SUBCLASSES

       These subclasses implement part of the GraphQL language specification. Objects of these classes implement
       user-defined types used to implement a GraphQL API.

       GraphQL::Type::Enum
       GraphQL::Type::InputObject
       GraphQL::Type::Interface
       GraphQL::Type::List
       GraphQL::Type::NonNull
       GraphQL::Type::Object
       GraphQL::Type::Scalar - also implements example types such as "String"
       GraphQL::Type::Union

ROLES

       These roles implement part of the GraphQL language specification. They are applied to objects of
       GraphQL::Type classes, either to facilitate type constrants, or as noted below.

       GraphQL::Role::FieldsInput - provides "fields" attribute for an input type
       GraphQL::Role::FieldsOutput - provides "fields" attribute for an output type
       GraphQL::Role::Abstract - abstract type
       GraphQL::Role::Composite - type has fields
       GraphQL::Role::Input - type can be an input
       GraphQL::Role::Leaf - simple type - enum or scalar
       GraphQL::Role::Listable - can be list-wrapped; provides convenience method
       GraphQL::Role::Named - has a "name" and "description", provided by this role
       GraphQL::Role::Nullable - can be null-valued
       GraphQL::Role::Output - type can be an output

TYPE LIBRARY

       GraphQL::Type::Library - implements various Type::Tiny type constraints, for use in Moo attributes, and
       Function::Parameters/Return::Type methods and functions.

METHODS

   uplift
       Turn given Perl entity into valid Perl value for this type if possible.

   graphql_to_perl
       Turn given GraphQL entity into Perl entity.

   perl_to_graphql
       Turn given Perl entity into GraphQL entity.

   from_ast($name2type, $ast_node)
       Class method.  $name2type is a hash-ref populated by "from_ast" in GraphQL::Schema.  Takes a hash-ref
       node from an AST made by "parse" in GraphQL::Language::Parser. Returns a type object.

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