You are here

public static function SubscriptionPluginBase::createInstance in GraphQL 8.3

Parameters

\Drupal\graphql\Plugin\SchemaBuilderInterface $builder:

\Drupal\graphql\Plugin\SubscriptionPluginManager $manager:

$definition:

$id:

Return value

mixed

Overrides SubscriptionPluginInterface::createInstance

File

src/Plugin/GraphQL/Subscriptions/SubscriptionPluginBase.php, line 23

Class

SubscriptionPluginBase

Namespace

Drupal\graphql\Plugin\GraphQL\Subscriptions

Code

public static function createInstance(SchemaBuilderInterface $builder, SubscriptionPluginManager $manager, $definition, $id) {
  return [
    'description' => $definition['description'],
    'deprecationReason' => $definition['deprecationReason'],
    'type' => $builder
      ->processType($definition['type']),
    'args' => $builder
      ->processArguments($definition['args']),
    'resolve' => function ($value, $args, $context, $info) use ($manager, $id) {
      $instance = $manager
        ->getInstance([
        'id' => $id,
      ]);
      return call_user_func_array([
        $instance,
        'resolve',
      ], [
        $value,
        $args,
        $context,
        $info,
      ]);
    },
  ];
}