private construct()

in src/dependency-container.ts [472:493]


  private construct<T>(
    ctor: constructor<T> | DelayedConstructor<T>,
    context: ResolutionContext
  ): T {
    if (ctor instanceof DelayedConstructor) {
      return ctor.createProxy((target: constructor<T>) =>
        this.resolve(target, context)
      );
    }
    const paramInfo = typeInfo.get(ctor);
    if (!paramInfo || paramInfo.length === 0) {
      if (ctor.length === 0) {
        return new ctor();
      } else {
        throw new Error(`TypeInfo not known for "${ctor.name}"`);
      }
    }

    const params = paramInfo.map(this.resolveParams(context, ctor));

    return new ctor(...params);
  }