@glandjs/core
Version:
Glands is a web framework for Node.js (@core)
29 lines (28 loc) • 1.09 kB
TypeScript
import { Logger } from '@medishn/toolkit';
import { ModulesContainer } from '../injector';
export type LifecycleHook = 'onModuleInit' | 'onModuleDestroy' | 'onAppBootstrap' | 'onAppShutdown' | 'onChannelInit';
export type LifecycleComponentType = 'module' | 'controller' | 'channel';
export interface LifecycleComponent {
instance: any;
moduleToken: string;
componentType: LifecycleComponentType;
componentToken: string;
}
export declare class LifecycleScanner {
private readonly modulesContainer;
private readonly moduleComponentMap;
private readonly logger?;
constructor(modulesContainer: ModulesContainer, logger?: Logger);
scanForHooks(): void;
private scanModule;
private scanComponentsForHooks;
private getModuleInstance;
private hasLifecycleHooks;
private hasHook;
runHook(hook: LifecycleHook, signal?: string): Promise<void>;
onModuleInit(): Promise<void>;
onModuleDestroy(): Promise<void>;
onAppBootstrap(): Promise<void>;
onAppShutdown(signal?: string): Promise<void>;
onChannelInit(): Promise<void>;
}