egg
Version:
A web application framework for Node.js
29 lines (28 loc) • 937 B
JavaScript
import { MessageUnhandledRejectionError } from "../../error/MessageUnhandledRejectionError.js";
import "../../egg.js";
import { EventEmitter, captureRejectionSymbol } from "node:events";
//#region src/lib/core/messenger/base.ts
var BaseMessenger = class extends EventEmitter {
egg;
constructor(egg) {
super({ captureRejections: true });
this.egg = egg;
this[captureRejectionSymbol] = this.onRejection.bind(this);
}
onRejection(err, event, ...args) {
this.egg.coreLogger.error(new MessageUnhandledRejectionError(err, event, args));
}
emit(eventName, ...args) {
const hasListeners = this.listenerCount(eventName) > 0;
try {
return super.emit(eventName, ...args);
} catch (e) {
let err = e;
if (!(err instanceof Error)) err = new Error(String(err));
this.egg.coreLogger.error(new MessageUnhandledRejectionError(err, eventName, args));
return hasListeners;
}
}
};
//#endregion
export { BaseMessenger };