in src/dependency-container.ts [170:210]
public registerSingleton<T>(
from: InjectionToken<T>,
to?: InjectionToken<T>
): InternalDependencyContainer {
if (isNormalToken(from)) {
if (isNormalToken(to)) {
return this.register(
from,
{
useToken: to
},
{lifecycle: Lifecycle.Singleton}
);
} else if (to) {
return this.register(
from,
{
useClass: to
},
{lifecycle: Lifecycle.Singleton}
);
}
throw new Error(
'Cannot register a type name as a singleton without a "to" token'
);
}
let useClass = from;
if (to && !isNormalToken(to)) {
useClass = to;
}
return this.register(
from,
{
useClass
},
{lifecycle: Lifecycle.Singleton}
);
}