You are here

function graphql_list_interfaces in GraphQL 8.3

Get a flattened list of a plugins interface inheritance tree.

Parameters

array $definitions: The list of interface definitions.

mixed $definition: A plugin definition.

Return value

string[] A list of interface names.

2 calls to graphql_list_interfaces()
graphql_graphql_interfaces_alter in ./graphql.module
Implements hook_graphql_interfaces_alter().
graphql_graphql_types_alter in ./graphql.module
Implements hook_graphql_types_alter().

File

./graphql.module, line 156

Code

function graphql_list_interfaces(array &$definitions, $definition) {
  $parents = array_filter($definitions, function ($parent) use ($definition) {
    return in_array($parent['name'], $definition['interfaces']);
  });
  $interfaces = array_reduce(array_map(function ($parent) use ($definitions) {
    return graphql_list_interfaces($definitions, $parent);
  }, $parents), 'array_merge', $definition['interfaces']);
  return $interfaces;
}