UNPKG

@alilc/lowcode-editor-core

Version:

Core Api for Ali lowCode engine

104 lines (101 loc) 3.2 kB
import { Logger } from '@alilc/lowcode-utils'; import EventEmitter from 'events'; var logger = new Logger({ level: 'warn', bizName: 'event-bus' }); var moduleLogger = new Logger({ level: 'warn', bizName: 'module-event-bus' }); export var EventBus = /*#__PURE__*/function () { function EventBus(emitter, name) { this.eventEmitter = void 0; this.name = void 0; /** * 内核触发的事件名 */ this.names = []; this.eventEmitter = emitter; this.name = name; } var _proto = EventBus.prototype; _proto.getMsgPrefix = function getMsgPrefix(type) { if (this.name && this.name.length > 0) { return "[" + this.name + "][event-" + type + "]"; } else { return "[*][event-" + type + "]"; } }; _proto.getLogger = function getLogger() { if (this.name && this.name.length > 0) { return moduleLogger; } else { return logger; } } /** * 监听事件 * @param event 事件名称 * @param listener 事件回调 */; _proto.on = function on(event, listener) { var _this = this; this.eventEmitter.on(event, listener); this.getLogger().debug(this.getMsgPrefix('on') + " " + event); return function () { _this.off(event, listener); }; }; _proto.prependListener = function prependListener(event, listener) { var _this2 = this; this.eventEmitter.prependListener(event, listener); this.getLogger().debug(this.getMsgPrefix('prependListener') + " " + event); return function () { _this2.off(event, listener); }; } /** * 取消监听事件 * @param event 事件名称 * @param listener 事件回调 */; _proto.off = function off(event, listener) { this.eventEmitter.off(event, listener); this.getLogger().debug(this.getMsgPrefix('off') + " " + event); } /** * 触发事件 * @param event 事件名称 * @param args 事件参数 * @returns */; _proto.emit = function emit(event) { var _this$eventEmitter, _this$getLogger; for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } (_this$eventEmitter = this.eventEmitter).emit.apply(_this$eventEmitter, [event].concat(args)); (_this$getLogger = this.getLogger()).debug.apply(_this$getLogger, [this.getMsgPrefix('emit') + " name: " + event + ", args: "].concat(args)); }; _proto.removeListener = function removeListener(event, listener) { return this.eventEmitter.removeListener(event, listener); }; _proto.addListener = function addListener(event, listener) { return this.eventEmitter.addListener(event, listener); }; _proto.setMaxListeners = function setMaxListeners(n) { return this.eventEmitter.setMaxListeners(n); }; _proto.removeAllListeners = function removeAllListeners(event) { return this.eventEmitter.removeAllListeners(event); }; return EventBus; }(); export var createModuleEventBus = function createModuleEventBus(moduleName, maxListeners) { var emitter = new EventEmitter(); if (maxListeners) { emitter.setMaxListeners(maxListeners); } return new EventBus(emitter, moduleName); };