Injector assumes it should be used to resolve all dependencies
When dependency is added using different namespace/injector, then it cannot be resolved. Example:
const namespace = Container.for('Engines');
@Injectable(namespace) class Engine {}
@Injectable() class Car {
constructor(@Inject(Engine, namespace) public engine: Engine) {}
}
const car = Container.provide(Car);
Error will be thrown:
Error: Cannot provide [object InjectionToken<Engine>]
at Injector.provide (src\injector.ts:120:11)
at Reflect.construct.parameters.map (src\injector.ts:126:83)
at Array.map (<anonymous>)
at Injector.construct (src\injector.ts:126:59)
at Injector.provide (src\injector.ts:111:61)
at Function.provide (src\container.ts:32:42)
at Context.it (src\decorators\inject.spec.ts:65:29)