aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/stores/base.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/js/stores/base.js')
-rw-r--r--web/src/js/stores/base.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/web/src/js/stores/base.js b/web/src/js/stores/base.js
new file mode 100644
index 00000000..952fa847
--- /dev/null
+++ b/web/src/js/stores/base.js
@@ -0,0 +1,25 @@
+function EventEmitter() {
+ this.listeners = {};
+}
+EventEmitter.prototype.emit = function (event) {
+ if (!(event in this.listeners)) {
+ return;
+ }
+ var args = Array.prototype.slice.call(arguments, 1);
+ this.listeners[event].forEach(function (listener) {
+ listener.apply(this, args);
+ }.bind(this));
+};
+EventEmitter.prototype.addListener = function (event, f) {
+ this.listeners[event] = this.listeners[event] || [];
+ this.listeners[event].push(f);
+};
+EventEmitter.prototype.removeListener = function (event, f) {
+ if (!(event in this.listeners)) {
+ return false;
+ }
+ var index = this.listeners[event].indexOf(f);
+ if (index >= 0) {
+ this.listeners[event].splice(index, 1);
+ }
+};