mythtv-event-emitter
Version:
Event Emitter for MythTV system events.
31 lines • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mythNotifier = exports.notifyEvent = void 0;
const events_1 = require("events");
function notifyEvent(eventType, sender, eventMessage) {
exports.mythNotifier.emit('MythEvent', sender, eventType, eventMessage);
}
exports.notifyEvent = notifyEvent;
class MythEmitter extends events_1.EventEmitter {
constructor() {
super();
this.hosts = new Map();
this.on('MythEvent', this.handleNotification);
}
hostEmitter(host) {
let ret = this.hosts.get(host);
if (!ret) {
ret = new events_1.EventEmitter();
this.hosts.set(host, ret);
}
return ret;
}
handleNotification(sender, eventType, message) {
const eventEmitter = this.hostEmitter(sender);
eventEmitter.emit('pre', eventType, message);
eventEmitter.emit(eventType, message);
eventEmitter.emit('post', eventType, message);
}
}
exports.mythNotifier = new MythEmitter();
//# sourceMappingURL=events.js.map