---
name: "GraphQL::Plugin::Convert"
section: "3pm"
platform: "linux"
package: "libgraphql-perl"
version: "0.54-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/GraphQL::Plugin::Convert"
---

# GraphQL::Plugin::Convert(3pm)

GraphQL plugin API abstract class

## NAME

GraphQL::Plugin::Convert - GraphQL plugin API abstract class

## SYNOPSIS

```
  package GraphQL::Plugin::Convert::DBIC;
  use Moo;
  extends qw(GraphQL::Plugin::Convert);
  # ...
  package main;
  use Mojolicious::Lite;
  use Schema;
  use GraphQL::Plugin::Convert::DBIC;
  helper db => sub { Schema->connect('dbi:SQLite:test.db') };
  my $converted = GraphQL::Plugin::Convert::DBIC->to_graphql(sub { app->db });
  plugin GraphQL => {
    map { $_ => $converted->{$_} }
      qw(schema resolver root_value subscribe_resolver)
  };
  # OR, for knowledgeable consumers of GraphQL::Plugin::Convert APIs:
  package main;
  use Mojolicious::Lite;
  use Schema;
  helper db => sub { Schema->connect('dbi:SQLite:test.db') };
  plugin GraphQL => { convert => [ 'DBIC', sub { app->db } ] };
```

## DESCRIPTION

Abstract class for other GraphQL type classes to inherit from and implement.

## METHODS

### to\_graphql(@values)

When called with suitable values (as defined by the implementing class), will return a hash-ref with these keys:

- schema

  A GraphQL::Schema.

- resolver

  A code-ref suitable for using as a resolver by "execute" in GraphQL::Execution. Optional.

- root\_value

  A hash-ref suitable for using as a `$root_value` by "execute" in GraphQL::Execution. Optional.

- subscribe\_resolver

  A code-ref suitable for using as a `$subscribe_resolver` by "subscribe" in GraphQL::Subscription. Optional.

### from\_graphql

When called with a hash-ref shaped as above, with at least a `"schema"` key with a GraphQL::Schema, returns some value(s). Optional to implement.  If the plugin does implement this, allows conversion from a GraphQL schema to that plugin's domain.
