UNPKG

@mtdt.temp/browser-core

Version:
41 lines 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SKIPPED = exports.DISCARDED = void 0; exports.abstractHooks = abstractHooks; const mergeInto_1 = require("./mergeInto"); // Discards the event from being sent exports.DISCARDED = 'DISCARDED'; // Skips from the assembly of the event exports.SKIPPED = 'SKIPPED'; function abstractHooks() { const callbacks = {}; return { register(hookName, callback) { if (!callbacks[hookName]) { callbacks[hookName] = []; } callbacks[hookName].push(callback); return { unregister: () => { callbacks[hookName] = callbacks[hookName].filter((cb) => cb !== callback); }, }; }, triggerHook(hookName, param) { const hookCallbacks = callbacks[hookName] || []; const results = []; for (const callback of hookCallbacks) { const result = callback(param); if (result === exports.DISCARDED) { return exports.DISCARDED; } if (result === exports.SKIPPED) { continue; } results.push(result); } return (0, mergeInto_1.combine)(...results); }, }; } //# sourceMappingURL=abstractHooks.js.map