diff --git a/src/modules/plugin/event/init.ts b/src/modules/plugin/event/init.ts new file mode 100644 index 0000000..4a55409 --- /dev/null +++ b/src/modules/plugin/event/init.ts @@ -0,0 +1,36 @@ +import { CoolEvent, Event } from '@cool-midway/core'; +import { Inject } from '@midwayjs/core'; +import { PluginCenterService } from '../service/center'; + +// 插件初始化全局事件 +export const GLOBAL_EVENT_PLUGIN_INIT = 'globalPluginInit'; +// 插件移除全局事件 +export const GLOBAL_EVENT_PLUGIN_REMOVE = 'globalPluginRemove'; + +/** + * 接收事件 + */ +@CoolEvent() +export class PluginInitEvent { + @Inject() + pluginCenterService: PluginCenterService; + + /** + * 插件初始化事件,某个插件重新初始化 + * @param key + */ + @Event(GLOBAL_EVENT_PLUGIN_INIT) + async globalPluginInit(key: string) { + await this.pluginCenterService.initOne(key); + } + + /** + * 插件移除或者关闭事件 + * @param key + * @param isHook + */ + @Event(GLOBAL_EVENT_PLUGIN_REMOVE) + async globalPluginRemove(key: string, isHook: boolean) { + await this.pluginCenterService.remove(key, isHook); + } +}