code: private function internalBuildType($typeName, $typeNode = null)
      {
          if (! isset($this->cache[$typeName])) {
              if (isset($this->typeDefinitionsMap[$typeName])) {
                  $type = $this->makeSchemaDef($this->typeDefinitionsMap[$typeName]);
                  if ($this->typeConfigDecorator) {
                      $fn = $this->typeConfigDecorator;
                      try {
                          $config = $fn($type->config, $this->typeDefinitionsMap[$typeName], $this->typeDefinitionsMap);
                      } catch (Throwable $e) {
                          throw new Error(
                              sprintf('Type config decorator passed to %s threw an error ', static::class) .
                              sprintf('when building %s type: %s', $typeName, $e->getMessage()),
                              null,
                              null,
                              null,
                              null,
                              $e
                          );
                      }
                      if (! is_array($config) || isset($config[0])) {
                          throw new Error(
                              sprintf(
                                  'Type config decorator passed to %s is expected to return an array, but got %s',
                                  static::class,
                                  Utils::getVariableType($config)
                              )
                          );
                      }
                      $type = $this->makeSchemaDefFromConfig($this->typeDefinitionsMap[$typeName], $config);
                  }
                  $this->cache[$typeName] = $type;
              } else {
                  $fn                     = $this->resolveType;
                  $this->cache[$typeName] = $fn($typeName, $typeNode);
              }
          }
  
          return $this->cache[$typeName];
      }
docs: @param string             $typeName
  @param NamedTypeNode|null $typeNode
  
  @return Type
  
  @throws Error