private function mergeResolveConfig(SchemaContainer $schemaContainer, Field $field) { $config = $field->getResolveConfig(); $typeName = TypeParser::getFinalType($field->getType()); if (!$schemaContainer->hasType($typeName)) { return; } $typeConfig = $schemaContainer->getType($typeName)->getResolveConfig(); $config = array_merge($typeConfig, $config); $field->setResolveConfig($config); }
/** * @param Field $field */ private function prepareResolver(Field $field) { $resolveConfig = $field->getResolveConfig(); if (isset($resolveConfig['handler'])) { $handler = $resolveConfig['handler']; if (!isset($this->resolveFactories[$handler])) { throw new \Exception(sprintf('Handle named "%s" does not exist', $resolveConfig['handler'])); } $resolver = $this->resolveFactories[$handler]->getFunction($resolveConfig, $field); $field->setResolve($resolver); } }