private resolveParams()

in src/dependency-container.ts [495:525]


  private resolveParams<T>(context: ResolutionContext, ctor: constructor<T>) {
    return (param: ParamInfo, idx: number) => {
      try {
        if (isTokenDescriptor(param)) {
          if (isTransformDescriptor(param)) {
            return param.multiple
              ? this.resolve(param.transform).transform(
                  this.resolveAll(param.token),
                  ...param.transformArgs
                )
              : this.resolve(param.transform).transform(
                  this.resolve(param.token, context),
                  ...param.transformArgs
                );
          } else {
            return param.multiple
              ? this.resolveAll(param.token)
              : this.resolve(param.token, context);
          }
        } else if (isTransformDescriptor(param)) {
          return this.resolve(param.transform, context).transform(
            this.resolve(param.token, context),
            ...param.transformArgs
          );
        }
        return this.resolve(param, context);
      } catch (e) {
        throw new Error(formatErrorCtor(ctor, idx, e));
      }
    };
  }