import type { EggObject, EggObjectLifeCycleContext } from '@eggjs/tegg-runtime'; /** * lifecycle hook interface for egg object */ export interface EggObjectLifecycle { /** * call before project load */ preLoad?(ctx: EggObjectLifeCycleContext): Promise; /** * call after construct */ postConstruct?(ctx: EggObjectLifeCycleContext, eggObj: EggObject): Promise; /** * call before inject deps */ preInject?(ctx: EggObjectLifeCycleContext, eggObj: EggObject): Promise; /** * call after inject deps */ postInject?(ctx: EggObjectLifeCycleContext, eggObj: EggObject): Promise; /** * before object is ready */ init?(ctx: EggObjectLifeCycleContext, eggObj: EggObject): Promise; /** * call before destroy */ preDestroy?(ctx: EggObjectLifeCycleContext, eggObj: EggObject): Promise; /** * destroy the object */ destroy?(ctx: EggObjectLifeCycleContext, eggObj: EggObject): Promise; } export type LifecycleHookName = keyof EggObjectLifecycle;