@hestjs/core
Version:
HestJS Core Framework - A TypeScript framework built on Hono with dependency injection and decorators
50 lines • 1.23 kB
JavaScript
;
/**
* 应用启动钩子系统
*
* 这是一个通用的钩子系统,允许外部包注册自己的初始化逻辑
* 而不会让 core 包与特定的外部包产生耦合
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApplicationHooks = void 0;
/**
* 应用钩子管理器
*/
class ApplicationHooks {
static instance;
hooks = [];
constructor() { }
static getInstance() {
if (!ApplicationHooks.instance) {
ApplicationHooks.instance = new ApplicationHooks();
}
return ApplicationHooks.instance;
}
/**
* 注册应用启动钩子
*/
registerHook(hook) {
this.hooks.push(hook);
}
/**
* 执行所有注册的钩子
*/
async executeHooks(container) {
for (const hook of this.hooks) {
try {
await hook(container);
}
catch (error) {
console.warn('Failed to execute application hook:', error);
}
}
}
/**
* 清空所有钩子
*/
clearHooks() {
this.hooks = [];
}
}
exports.ApplicationHooks = ApplicationHooks;
//# sourceMappingURL=application-hooks.js.map