GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
GraphQL::Plugin::Type(3) User Contributed Perl Documentation GraphQL::Plugin::Type(3)

GraphQL::Plugin::Type - GraphQL plugins implementing types

  package GraphQL::Plugin::Type::DateTime;
  use Moo;
  extends qw(GraphQL::Plugin::Type);
  my $iso8601 = DateTime::Format::ISO8601->new;
  GraphQL::Plugin::Type->register(
    GraphQL::Type::Scalar->new(
      name => 'DateTime',
      serialize => sub { return if !defined $_[0]; $_[0].'' },
      parse_value => sub { return if !defined $_[0]; $iso8601->parse_datetime(@_); },
    )
  );
  1;

  package main;
  use GraphQL::Schema;
  use GraphQL::Plugin::Type::DateTime;
  use GraphQL::Execution qw(execute);
  my $schema = GraphQL::Schema->from_doc(<<'EOF');
  type Query { dateTimeNow: DateTime }
  EOF
  post '/graphql' => sub {
    send_as JSON => execute(
      $schema,
      body_parameters->{query},
      { dateTimeNow => sub { DateTime->now } },
      undef,
      body_parameters->{variables},
      body_parameters->{operationName},
      undef,
    );
  };

Class implementing the scheme by which additional GraphQL type classes can be implemented.

The author considers this is only worth doing for scalars, and indeed this scheme is (now) how the non-standard "DateTime" is implemented in graphql-perl. If one wants to create other types (GraphQL::Type::Object, GraphQL::Type::InputObject, etc), then the Schema Definition Language is already available. However, any type can be registered with the "register" method, and will be automatically available to GraphQL::Schema objects with no additional code.

When called with a GraphQL::Type subclass, will register it, otherwise dies.

Returns a list of registered classes.
2021-07-04 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.