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

Function callAppShutdownHook

packages/core/hooks/on-app-shutdown.hook.ts:45–74  ·  view source on GitHub ↗
(
  module: Module,
  signal?: string,
)

Source from the content-addressed store, hash-verified

43 * @param signal
44 */
45export async function callAppShutdownHook(
46 module: Module,
47 signal?: string,
48): Promise<any> {
49 const providers = module.getNonAliasProviders();
50 // Module (class) instance is the first element of the providers array
51 // Lifecycle hook has to be called once all classes are properly initialized
52 const [_, moduleClassHost] = providers.shift()!;
53 const instances = [
54 ...module.controllers,
55 ...providers,
56 ...module.injectables,
57 ...module.middlewares,
58 ];
59
60 const nonTransientInstances = getNonTransientInstances(instances);
61 await Promise.all(callOperator(nonTransientInstances, signal));
62 const transientInstances = getTransientInstances(instances);
63 await Promise.all(callOperator(transientInstances, signal));
64
65 // Call the instance itself
66 const moduleClassInstance = moduleClassHost.instance;
67 if (
68 moduleClassInstance &&
69 hasOnAppShutdownHook(moduleClassInstance) &&
70 moduleClassHost.isDependencyTreeStatic()
71 ) {
72 await moduleClassInstance.onApplicationShutdown(signal);
73 }
74}

Callers 2

callShutdownHookMethod · 0.90

Calls 8

getNonTransientInstancesFunction · 0.90
getTransientInstancesFunction · 0.90
hasOnAppShutdownHookFunction · 0.85
getNonAliasProvidersMethod · 0.80
allMethod · 0.80
callOperatorFunction · 0.70
onApplicationShutdownMethod · 0.65

Tested by

no test coverage detected