UNPKG

@halsp/core

Version:

面向云的现代渐进式轻量 Node.js 框架

35 lines 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HookManager = void 0; const __1 = require("../index.cjs"); const MIDDLEWARE_HOOK_BAG = "@halsp/core/middlewareHooksBag"; const hookMap = new WeakMap(); class HookManager { static getGlobalHooks(startup, type) { if (!hookMap.has(startup)) { hookMap.set(startup, []); } return hookMap .get(startup) .filter((h) => (0, __1.isUndefined)(type) || h.type == type); } static addGlobalHook(startup, hook) { if (!hookMap.has(startup)) { hookMap.set(startup, []); } const hooks = hookMap.get(startup); hooks.push(hook); } static getHooks(ctx, type) { const globalHooks = this.getGlobalHooks(ctx.startup, type); const hooks = (ctx.get(MIDDLEWARE_HOOK_BAG) ?? []).filter((h) => (0, __1.isUndefined)(type) || h.type == type); return [...globalHooks, ...hooks]; } static addHook(ctx, hook) { const hooks = ctx.get(MIDDLEWARE_HOOK_BAG) ?? []; hooks.push({ hook: hook.hook, type: hook.type }); ctx.set(MIDDLEWARE_HOOK_BAG, hooks); } } exports.HookManager = HookManager; //# sourceMappingURL=hook.manager.js.map