1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var EventBus = (function () {
|
4 | function EventBus() {
|
5 | this.listeners = {};
|
6 | }
|
7 | EventBus.prototype.emit = function (event, data) {
|
8 | if (this.listeners[event]) {
|
9 | this.listeners[event].forEach(function (listener) { return listener(data); });
|
10 | }
|
11 | };
|
12 | EventBus.prototype.on = function (event, listener) {
|
13 | if (!this.listeners[event]) {
|
14 | this.listeners[event] = [];
|
15 | }
|
16 | this.listeners[event].push(listener);
|
17 | };
|
18 | EventBus.prototype.unsubscribe = function (listener) {
|
19 | Object.values(this.listeners).forEach(function (listeners) {
|
20 | var index = listeners.indexOf(listener);
|
21 | if (index > -1) {
|
22 | listeners.splice(index, 1);
|
23 | }
|
24 | });
|
25 | };
|
26 | return EventBus;
|
27 | }());
|
28 | exports.EventBus = EventBus;
|
29 | exports.eventBus = new EventBus();
|