UNPKG

@alilc/lowcode-editor-core

Version:

Core Api for Ali lowCode engine

109 lines (105 loc) 3.48 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.createModuleEventBus = exports.EventBus = void 0; var _lowcodeUtils = require("@alilc/lowcode-utils"); var _events = _interopRequireDefault(require("events")); var logger = new _lowcodeUtils.Logger({ level: 'warn', bizName: 'event-bus' }); var moduleLogger = new _lowcodeUtils.Logger({ level: 'warn', bizName: 'module-event-bus' }); var EventBus = exports.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; }(); var createModuleEventBus = exports.createModuleEventBus = function createModuleEventBus(moduleName, maxListeners) { var emitter = new _events["default"](); if (maxListeners) { emitter.setMaxListeners(maxListeners); } return new EventBus(emitter, moduleName); };