12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.EventEmitterMQ = void 0;
- var _events = _interopRequireDefault(require("events"));
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
- const emitter = new _events.default.EventEmitter();
- const subscriptions = new Map();
- function unsubscribe(channel) {
- if (!subscriptions.has(channel)) {
- //console.log('No channel to unsub from');
- return;
- }
- //console.log('unsub ', channel);
- emitter.removeListener(channel, subscriptions.get(channel));
- subscriptions.delete(channel);
- }
- class Publisher {
- constructor(emitter) {
- this.emitter = emitter;
- }
- publish(channel, message) {
- this.emitter.emit(channel, message);
- }
- }
- class Consumer extends _events.default.EventEmitter {
- constructor(emitter) {
- super();
- this.emitter = emitter;
- }
- subscribe(channel) {
- unsubscribe(channel);
- const handler = message => {
- this.emit('message', channel, message);
- };
- subscriptions.set(channel, handler);
- this.emitter.on(channel, handler);
- }
- unsubscribe(channel) {
- unsubscribe(channel);
- }
- }
- function createPublisher() {
- return new Publisher(emitter);
- }
- function createSubscriber() {
- return new Consumer(emitter);
- }
- const EventEmitterMQ = exports.EventEmitterMQ = {
- createPublisher,
- createSubscriber
- };
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJlbWl0dGVyIiwiZXZlbnRzIiwiRXZlbnRFbWl0dGVyIiwic3Vic2NyaXB0aW9ucyIsIk1hcCIsInVuc3Vic2NyaWJlIiwiY2hhbm5lbCIsImhhcyIsInJlbW92ZUxpc3RlbmVyIiwiZ2V0IiwiZGVsZXRlIiwiUHVibGlzaGVyIiwiY29uc3RydWN0b3IiLCJwdWJsaXNoIiwibWVzc2FnZSIsImVtaXQiLCJDb25zdW1lciIsInN1YnNjcmliZSIsImhhbmRsZXIiLCJzZXQiLCJvbiIsImNyZWF0ZVB1Ymxpc2hlciIsImNyZWF0ZVN1YnNjcmliZXIiLCJFdmVudEVtaXR0ZXJNUSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvTWVzc2FnZVF1ZXVlL0V2ZW50RW1pdHRlck1RLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBldmVudHMgZnJvbSAnZXZlbnRzJztcblxuY29uc3QgZW1pdHRlciA9IG5ldyBldmVudHMuRXZlbnRFbWl0dGVyKCk7XG5jb25zdCBzdWJzY3JpcHRpb25zID0gbmV3IE1hcCgpO1xuXG5mdW5jdGlvbiB1bnN1YnNjcmliZShjaGFubmVsOiBzdHJpbmcpIHtcbiAgaWYgKCFzdWJzY3JpcHRpb25zLmhhcyhjaGFubmVsKSkge1xuICAgIC8vY29uc29sZS5sb2coJ05vIGNoYW5uZWwgdG8gdW5zdWIgZnJvbScpO1xuICAgIHJldHVybjtcbiAgfVxuICAvL2NvbnNvbGUubG9nKCd1bnN1YiAnLCBjaGFubmVsKTtcbiAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcihjaGFubmVsLCBzdWJzY3JpcHRpb25zLmdldChjaGFubmVsKSk7XG4gIHN1YnNjcmlwdGlvbnMuZGVsZXRlKGNoYW5uZWwpO1xufVxuXG5jbGFzcyBQdWJsaXNoZXIge1xuICBlbWl0dGVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoZW1pdHRlcjogYW55KSB7XG4gICAgdGhpcy5lbWl0dGVyID0gZW1pdHRlcjtcbiAgfVxuXG4gIHB1Ymxpc2goY2hhbm5lbDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXR0ZXIuZW1pdChjaGFubmVsLCBtZXNzYWdlKTtcbiAgfVxufVxuXG5jbGFzcyBDb25zdW1lciBleHRlbmRzIGV2ZW50cy5FdmVudEVtaXR0ZXIge1xuICBlbWl0dGVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoZW1pdHRlcjogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmVtaXR0ZXIgPSBlbWl0dGVyO1xuICB9XG5cbiAgc3Vic2NyaWJlKGNoYW5uZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIHVuc3Vic2NyaWJlKGNoYW5uZWwpO1xuICAgIGNvbnN0IGhhbmRsZXIgPSBtZXNzYWdlID0+IHtcbiAgICAgIHRoaXMuZW1pdCgnbWVzc2FnZScsIGNoYW5uZWwsIG1lc3NhZ2UpO1xuICAgIH07XG4gICAgc3Vic2NyaXB0aW9ucy5zZXQoY2hhbm5lbCwgaGFuZGxlcik7XG4gICAgdGhpcy5lbWl0dGVyLm9uKGNoYW5uZWwsIGhhbmRsZXIpO1xuICB9XG5cbiAgdW5zdWJzY3JpYmUoY2hhbm5lbDogc3RyaW5nKTogdm9pZCB7XG4gICAgdW5zdWJzY3JpYmUoY2hhbm5lbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlUHVibGlzaGVyKCk6IGFueSB7XG4gIHJldHVybiBuZXcgUHVibGlzaGVyKGVtaXR0ZXIpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTdWJzY3JpYmVyKCk6IGFueSB7XG4gIHJldHVybiBuZXcgQ29uc3VtZXIoZW1pdHRlcik7XG59XG5cbmNvbnN0IEV2ZW50RW1pdHRlck1RID0ge1xuICBjcmVhdGVQdWJsaXNoZXIsXG4gIGNyZWF0ZVN1YnNjcmliZXIsXG59O1xuXG5leHBvcnQgeyBFdmVudEVtaXR0ZXJNUSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBNEIsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFNUIsTUFBTUcsT0FBTyxHQUFHLElBQUlDLGVBQU0sQ0FBQ0MsWUFBWSxDQUFDLENBQUM7QUFDekMsTUFBTUMsYUFBYSxHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDO0FBRS9CLFNBQVNDLFdBQVdBLENBQUNDLE9BQWUsRUFBRTtFQUNwQyxJQUFJLENBQUNILGFBQWEsQ0FBQ0ksR0FBRyxDQUFDRCxPQUFPLENBQUMsRUFBRTtJQUMvQjtJQUNBO0VBQ0Y7RUFDQTtFQUNBTixPQUFPLENBQUNRLGNBQWMsQ0FBQ0YsT0FBTyxFQUFFSCxhQUFhLENBQUNNLEdBQUcsQ0FBQ0gsT0FBTyxDQUFDLENBQUM7RUFDM0RILGFBQWEsQ0FBQ08sTUFBTSxDQUFDSixPQUFPLENBQUM7QUFDL0I7QUFFQSxNQUFNSyxTQUFTLENBQUM7RUFHZEMsV0FBV0EsQ0FBQ1osT0FBWSxFQUFFO0lBQ3hCLElBQUksQ0FBQ0EsT0FBTyxHQUFHQSxPQUFPO0VBQ3hCO0VBRUFhLE9BQU9BLENBQUNQLE9BQWUsRUFBRVEsT0FBZSxFQUFRO0lBQzlDLElBQUksQ0FBQ2QsT0FBTyxDQUFDZSxJQUFJLENBQUNULE9BQU8sRUFBRVEsT0FBTyxDQUFDO0VBQ3JDO0FBQ0Y7QUFFQSxNQUFNRSxRQUFRLFNBQVNmLGVBQU0sQ0FBQ0MsWUFBWSxDQUFDO0VBR3pDVSxXQUFXQSxDQUFDWixPQUFZLEVBQUU7SUFDeEIsS0FBSyxDQUFDLENBQUM7SUFDUCxJQUFJLENBQUNBLE9BQU8sR0FBR0EsT0FBTztFQUN4QjtFQUVBaUIsU0FBU0EsQ0FBQ1gsT0FBZSxFQUFRO0lBQy9CRCxXQUFXLENBQUNDLE9BQU8sQ0FBQztJQUNwQixNQUFNWSxPQUFPLEdBQUdKLE9BQU8sSUFBSTtNQUN6QixJQUFJLENBQUNDLElBQUksQ0FBQyxTQUFTLEVBQUVULE9BQU8sRUFBRVEsT0FBTyxDQUFDO0lBQ3hDLENBQUM7SUFDRFgsYUFBYSxDQUFDZ0IsR0FBRyxDQUFDYixPQUFPLEVBQUVZLE9BQU8sQ0FBQztJQUNuQyxJQUFJLENBQUNsQixPQUFPLENBQUNvQixFQUFFLENBQUNkLE9BQU8sRUFBRVksT0FBTyxDQUFDO0VBQ25DO0VBRUFiLFdBQVdBLENBQUNDLE9BQWUsRUFBUTtJQUNqQ0QsV0FBVyxDQUFDQyxPQUFPLENBQUM7RUFDdEI7QUFDRjtBQUVBLFNBQVNlLGVBQWVBLENBQUEsRUFBUTtFQUM5QixPQUFPLElBQUlWLFNBQVMsQ0FBQ1gsT0FBTyxDQUFDO0FBQy9CO0FBRUEsU0FBU3NCLGdCQUFnQkEsQ0FBQSxFQUFRO0VBQy9CLE9BQU8sSUFBSU4sUUFBUSxDQUFDaEIsT0FBTyxDQUFDO0FBQzlCO0FBRUEsTUFBTXVCLGNBQWMsR0FBQUMsT0FBQSxDQUFBRCxjQUFBLEdBQUc7RUFDckJGLGVBQWU7RUFDZkM7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|