protected function PluggableSchemaDeriver::buildSubscriptionMap in GraphQL 8.3
Builds an optimized representation of all registered subscriptions.
Parameters
\Drupal\graphql\Plugin\SubscriptionPluginManager $manager: The subscription plugin manager.
Return value
array The optimized list of all registered subscriptions.
1 call to PluggableSchemaDeriver::buildSubscriptionMap()
- PluggableSchemaDeriver::getDerivativeDefinitions in src/
Plugin/ Deriver/ PluggableSchemaDeriver.php - Gets the definition of all derivatives of a base plugin.
File
- src/
Plugin/ Deriver/ PluggableSchemaDeriver.php, line 424
Class
Namespace
Drupal\graphql\Plugin\DeriverCode
protected function buildSubscriptionMap(SubscriptionPluginManager $manager) {
$definitions = $manager
->getDefinitions();
$subscriptions = array_reduce(array_keys($definitions), function ($carry, $id) use ($definitions) {
$current = $definitions[$id];
$name = $current['name'];
if (empty($carry[$name]) || $carry[$name]['weight'] < $current['weight']) {
$carry[$name] = [
'id' => $id,
'class' => $current['class'],
'weight' => !empty($current['weight']) ? $current['weight'] : 0,
];
}
return $carry;
}, []);
return array_map(function ($definition) use ($manager) {
$id = $definition['id'];
$instance = $manager
->getInstance([
'id' => $id,
]);
return [
'definition' => $instance
->getDefinition(),
] + $definition;
}, $subscriptions);
}