6 declare(strict_types=1);
28 private $configElementFactory;
43 QueryFields $queryFields
45 $this->configData =
$data;
46 $this->configElementFactory = $configElementFactory;
47 $this->queryFields = $queryFields;
60 $data = $this->configData->get($configElementName);
61 if (!isset(
$data[
'type'])) {
62 throw new \LogicException(
63 sprintf(
'Config element "%s" is not declared in GraphQL schema', $configElementName)
67 $fieldsInQuery = $this->queryFields->getFieldsUsedInQuery();
68 if (isset(
$data[
'fields']) && !empty($fieldsInQuery)) {
69 foreach (
$data[
'fields'] as $fieldName => $fieldConfig) {
70 if (!isset($fieldsInQuery[$fieldName])) {
71 unset(
$data[
'fields'][$fieldName]);
76 return $this->configElementFactory->createFromConfigData(
$data);
87 foreach ($this->configData->get(
null) as
$item) {
88 if (isset(
$item[
'type']) &&
$item[
'type'] ==
'graphql_type') {
89 $types[] =
$item[
'name'];
__construct(DataInterface $data, ConfigElementFactoryInterface $configElementFactory, QueryFields $queryFields)
getConfigElement(string $configElementName)