@alilc/lowcode-editor-core
Version:
Core Api for Ali lowCode engine
109 lines (105 loc) • 3.48 kB
JavaScript
"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);
};