in src/dependency-container.ts [212:242]
public resolve<T>(
token: InjectionToken<T>,
context: ResolutionContext = new ResolutionContext()
): T {
const registration = this.getRegistration(token);
if (!registration && isNormalToken(token)) {
throw new Error(
`Attempted to resolve unregistered dependency token: "${token.toString()}"`
);
}
this.executePreResolutionInterceptor<T>(token, "Single");
if (registration) {
const result = this.resolveRegistration(registration, context) as T;
this.executePostResolutionInterceptor(token, result, "Single");
return result;
}
// No registration for this token, but since it's a constructor, return an instance
if (isConstructorToken(token)) {
const result = this.construct(token, context);
this.executePostResolutionInterceptor(token, result, "Single");
return result;
}
throw new Error(
"Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function."
);
}