resolveTarget<T> static method

ClassProxyListener<T> resolveTarget<T>(
  1. Object target, {
  2. String? moduleName,
  3. bool? responsesAsJson,
  4. APIModuleProxyResponseErrorHandler? errorHandler,
})

Resolves target to a ClassProxyListener. See registerTargetResolver.

Implementation

static ClassProxyListener<T> resolveTarget<T>(Object target,
    {String? moduleName,
    bool? responsesAsJson,
    APIModuleProxyResponseErrorHandler? errorHandler}) {
  for (var resolver in _targetResolvers) {
    var targetResolved =
        resolver<T>(target, moduleName, responsesAsJson, errorHandler);
    if (targetResolved != null) return targetResolved;
  }

  if (target is ClassProxyListener<T>) return target;

  if (target is HttpClient) {
    return APIModuleProxyHttpCaller(
      target,
      moduleRoute: moduleName,
      responsesAsJson: responsesAsJson,
      errorHandler: errorHandler,
    ) as ClassProxyListener<T>;
  }

  throw StateError("Can't resolve `APIModuleProxyListener` target: $target");
}