kiss-js-bloc
Version:
Bloc type state management solution for typescript
44 lines (43 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TypedEvent = void 0;
var events = require('events');
var myEmitter = new events.EventEmitter();
///
var TypedEvent = /** @class */ (function () {
function TypedEvent() {
var _this = this;
///
this.listners = [];
///
this.on = function (event, listener) {
console.log("Adding listner", listener);
_this.listners.push(listener);
myEmitter.on(event, listener);
//this.off(listener)
return {
dispose: function () { return _this.off(listener); }
};
};
this.off = function (listner) {
var callbackIndex = _this.listners.indexOf(listner);
console.log("dispose");
if (callbackIndex > -1) {
_this.listners.splice(callbackIndex, 1);
}
};
this.emit = function (event) {
var state;
_this.listners.forEach(function (listener) {
console.log("Listner ", listener);
console.log("Event ", event);
if (event == listener) {
state = listener(event);
}
});
return state;
};
}
return TypedEvent;
}());
exports.TypedEvent = TypedEvent;