UNPKG

ajsfw

Version:
48 lines (47 loc) 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var logger = require("ajsfw/dbg/logger"); var utils = require("ajsfw/utils"); var Notifier = (function () { function Notifier() { var listeners = []; for (var _i = 0; _i < arguments.length; _i++) { listeners[_i] = arguments[_i]; } logger.log(logger.LogType.Constructor, 0, "ajs.events", this); this.__listeners = []; for (var i = 0; i < listeners.length; i++) { this.__listeners.push(listeners[i]); } logger.log(logger.LogType.Exit, 0, "ajs.events", this); } Notifier.prototype.subscribe = function (listener) { logger.log(logger.LogType.Enter, 0, "ajs.events", this); if (this.__listeners.indexOf(listener) === -1) { this.__listeners.push(listener); } logger.log(logger.LogType.Info, 0, "ajs.events", this, "Registered subscribers: " + this.__listeners.length, this.__listeners); logger.log(logger.LogType.Exit, 0, "ajs.events", this); }; Notifier.prototype.unsubscribe = function (listener) { logger.log(logger.LogType.Enter, 0, "ajs.events", this); if (this.__listeners.indexOf(listener) !== -1) { this.__listeners.splice(this.__listeners.indexOf(listener)); } logger.log(logger.LogType.Info, 0, "ajs.events", this, "Registered subscribers: " + this.__listeners.length, this.__listeners); logger.log(logger.LogType.Exit, 0, "ajs.events", this); }; Notifier.prototype.notify = function (sender, data) { logger.log(logger.LogType.Enter, 0, "ajs.events", this); logger.log(logger.LogType.Info, 0, "ajs.events", this, "Notifying subscribers. Sender: " + utils.getClassName(sender), sender, data); for (var i = 0; i < this.__listeners.length; i++) { var result = this.__listeners[i](sender, data); if (!result) { return; } } logger.log(logger.LogType.Exit, 0, "ajs.events", this); }; return Notifier; }()); exports.Notifier = Notifier;