graphql_compose-1.0.0-beta20/src/Plugin/GraphQL/SchemaExtension/EntitySchemaExtension.php

src/Plugin/GraphQL/SchemaExtension/EntitySchemaExtension.php
<?php

declare(strict_types=1);

namespace Drupal\graphql_compose\Plugin\GraphQL\SchemaExtension;

use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\graphql\Attribute\SchemaExtension;
use Drupal\graphql\GraphQL\ResolverBuilder;
use Drupal\graphql\GraphQL\ResolverRegistryInterface;

/**
 * Adds Schema Types defined by the GraphQL Compose plugin system.
 *
 * @internal
 */
#[SchemaExtension(
  id: "graphql_compose_entity",
  name: new TranslatableMarkup("GraphQL Compose Entities"),
  description: new TranslatableMarkup("GraphQL types defined by plugins."),
  schema: "graphql_compose",
  priority: 100,
)]
class EntitySchemaExtension extends ResolverOnlySchemaExtensionPluginBase {

  /**
   * {@inheritdoc}
   */
  public function registerResolvers(ResolverRegistryInterface $registry): void {
    $builder = new ResolverBuilder();

    // Resolve entity types and fields.
    foreach ($this->gqlEntityTypeManager->getPluginInstances() as $entity_type_plugin) {
      $entity_type_plugin->registerResolvers($registry, $builder);
    }

    // Utility for junk.
    $registry->addFieldResolver(
      'UnsupportedType',
      'unsupported',
      $builder->callback(fn () => TRUE),
    );
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc