toosoon-events
Version:
Project providing services implemented as singleton class instances
42 lines (41 loc) • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventsManager = exports.EventManager = void 0;
var EventManager = /** @class */ (function () {
function EventManager() {
}
EventManager.prototype.on = function (listener) {
var _this = this;
if (!this.listeners.length)
this.bind();
if (!this.listeners.includes(listener))
this.listeners.push(listener);
return function () { return _this.off(listener); };
};
EventManager.prototype.off = function (listener) {
this.listeners = this.listeners.filter(function (_listener) { return _listener !== listener; });
if (!this.listeners.length)
this.unbind();
};
return EventManager;
}());
exports.EventManager = EventManager;
var EventsManager = /** @class */ (function () {
function EventsManager() {
}
EventsManager.prototype.on = function (eventKey, listener) {
var _this = this;
if (!this.listeners[eventKey].length)
this.bind(eventKey);
if (!this.listeners[eventKey].includes(listener))
this.listeners[eventKey].push(listener);
return function () { return _this.off(eventKey, listener); };
};
EventsManager.prototype.off = function (eventKey, listener) {
this.listeners[eventKey] = this.listeners[eventKey].filter(function (_listener) { return _listener !== listener; });
if (!this.listeners[eventKey].length)
this.unbind(eventKey);
};
return EventsManager;
}());
exports.EventsManager = EventsManager;