objectManager = $objectManager; $this->fieldsFactory = $fieldsFactory; } /** * Instantiate an object representing 'input' GraphQL config element. * * @param array $data * @return ConfigElementInterface */ public function createFromConfigData(array $data): ConfigElementInterface { $fields = isset($data['fields']) ? $this->fieldsFactory->createFromConfigData($data['fields']) : []; return $this->create( $data, $fields ); } /** * Create input type object based off array of configured GraphQL InputType data. * * Type data must contain name and the type's fields. Optional data includes description. * * @param array $typeData * @param array $fields * @return Input */ private function create( array $typeData, array $fields ): Input { return $this->objectManager->create( Input::class, [ 'name' => $typeData['name'], 'fields' => $fields, 'description' => isset($typeData['description']) ? $typeData['description'] : '' ] ); } }