UNPKG

toosoon-events

Version:

Project providing services implemented as singleton class instances

42 lines (41 loc) 1.61 kB
"use strict"; 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;