MCPcopy
hub / github.com/nestjs/nest / callModuleInitHook

Function callModuleInitHook

packages/core/hooks/on-module-init.hook.ts:37–64  ·  view source on GitHub ↗
(module: Module)

Source from the content-addressed store, hash-verified

35 * @param module The module which will be initialized
36 */
37export async function callModuleInitHook(module: Module): Promise<void> {
38 const providers = module.getNonAliasProviders();
39 // Module (class) instance is the first element of the providers array
40 // Lifecycle hook has to be called once all classes are properly initialized
41 const [_, moduleClassHost] = providers.shift()!;
42 const instances = [
43 ...module.controllers,
44 ...providers,
45 ...module.injectables,
46 ...module.middlewares,
47 ];
48
49 const nonTransientInstances = getNonTransientInstances(instances);
50 await Promise.all(callOperator(nonTransientInstances));
51
52 const transientInstances = getTransientInstances(instances);
53 await Promise.all(callOperator(transientInstances));
54
55 // Call the instance itself
56 const moduleClassInstance = moduleClassHost.instance;
57 if (
58 moduleClassInstance &&
59 hasOnModuleInitHook(moduleClassInstance) &&
60 moduleClassHost.isDependencyTreeStatic()
61 ) {
62 await moduleClassInstance.onModuleInit();
63 }
64}

Callers 2

callInitHookMethod · 0.90

Calls 8

getNonTransientInstancesFunction · 0.90
getTransientInstancesFunction · 0.90
hasOnModuleInitHookFunction · 0.85
getNonAliasProvidersMethod · 0.80
allMethod · 0.80
callOperatorFunction · 0.70
onModuleInitMethod · 0.65

Tested by

no test coverage detected