File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -50,7 +50,7 @@ export async function callBeforeAppShutdownHook(
5050 module : Module ,
5151 signal ?: string ,
5252) : Promise < void > {
53- const providers = [ ...module . providers ] ;
53+ const providers = [ ...module . getNonAliasProviders ( ) ] ;
5454 const [ _ , { instance : moduleClassInstance } ] = providers . shift ( ) ;
5555 const instances = [ ...module . controllers , ...providers ] ;
5656
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ function callOperator(instances: InstanceWrapper[]): Promise<any>[] {
3939 * @param module The module which will be initialized
4040 */
4141export async function callModuleBootstrapHook ( module : Module ) : Promise < any > {
42- const providers = [ ...module . providers ] ;
42+ const providers = [ ...module . getNonAliasProviders ( ) ] ;
4343 // Module (class) instance is the first element of the providers array
4444 // Lifecycle hook has to be called once all classes are properly initialized
4545 const [ _ , { instance : moduleClassInstance } ] = providers . shift ( ) ;
Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ export async function callAppShutdownHook(
4747 module : Module ,
4848 signal ?: string ,
4949) : Promise < any > {
50- const providers = [ ...module . providers ] ;
50+ const providers = [ ...module . getNonAliasProviders ( ) ] ;
5151 // Module (class) instance is the first element of the providers array
5252 // Lifecycle hook has to be called once all classes are properly initialized
5353 const [ _ , { instance : moduleClassInstance } ] = providers . shift ( ) ;
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ function callOperator(instances: InstanceWrapper[]): Promise<any>[] {
3939 * @param module The module which will be initialized
4040 */
4141export async function callModuleDestroyHook ( module : Module ) : Promise < any > {
42- const providers = [ ...module . providers ] ;
42+ const providers = [ ...module . getNonAliasProviders ( ) ] ;
4343 // Module (class) instance is the first element of the providers array
4444 // Lifecycle hook has to be called once all classes are properly destroyed
4545 const [ _ , { instance : moduleClassInstance } ] = providers . shift ( ) ;
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ function callOperator(instances: InstanceWrapper[]): Promise<any>[] {
3535 * @param module The module which will be initialized
3636 */
3737export async function callModuleInitHook ( module : Module ) : Promise < void > {
38- const providers = [ ...module . providers ] ;
38+ const providers = [ ...module . getNonAliasProviders ( ) ] ;
3939 // Module (class) instance is the first element of the providers array
4040 // Lifecycle hook has to be called once all classes are properly initialized
4141 const [ _ , { instance : moduleClassInstance } ] = providers . shift ( ) ;
Original file line number Diff line number Diff line change @@ -42,6 +42,8 @@ export class InstanceWrapper<T = any> {
4242 public inject ?: ( string | symbol | Function | Type < any > ) [ ] ;
4343 public forwardRef ?: boolean ;
4444
45+ public isAlias : Boolean = false ;
46+
4547 private readonly values = new WeakMap < ContextId , InstancePerContext < T > > ( ) ;
4648 private readonly [ INSTANCE_METADATA_SYMBOL ] : InstanceMetadataStore = { } ;
4749 private readonly [ INSTANCE_ID_SYMBOL ] : string ;
Original file line number Diff line number Diff line change @@ -345,6 +345,7 @@ export class Module {
345345 isResolved : false ,
346346 inject : [ useExisting ] ,
347347 host : this ,
348+ isAlias : true ,
348349 } ) ,
349350 ) ;
350351 }
@@ -455,6 +456,18 @@ export class Module {
455456 return this . _providers . get ( name ) as InstanceWrapper < T > ;
456457 }
457458
459+ public getNonAliasProviders ( ) : Map < string , InstanceWrapper < Injectable > > {
460+ const result = new Map < string , InstanceWrapper < Injectable > > ( ) ;
461+
462+ this . _providers . forEach ( ( wrapper , key ) => {
463+ if ( ! wrapper . isAlias ) {
464+ result . set ( key , wrapper ) ;
465+ }
466+ } ) ;
467+
468+ return result ;
469+ }
470+
458471 public createModuleReferenceType ( ) : any {
459472 const self = this ;
460473 return class extends ModuleRef {
You can’t perform that action at this time.
0 commit comments