UNPKG

rb-sdk

Version:

rb client sdk

89 lines (72 loc) 3.68 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _RBDebugger = require('./RBDebugger'); var _RBDebugger2 = _interopRequireDefault(_RBDebugger); var _RBEvent = require('./RBEvent'); var _RBEvent2 = _interopRequireDefault(_RBEvent); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var EventDispatcher = function () { function EventDispatcher() { _classCallCheck(this, EventDispatcher); this.eventListenerMap = {}; } _createClass(EventDispatcher, [{ key: 'dispatchEvent', value: function dispatchEvent(rbEvent) { var isLoged = rbEvent.event == _RBEvent2.default.PRINT_DEBUG_MESSAGE; if (!(rbEvent instanceof _RBEvent2.default) || !rbEvent.event) { isLoged ? null : _RBDebugger2.default.error("The instance is not of RBEvent or is empty event.", rbEvent); throw new Error("The instance is not of RBEvent or is empty event."); } var listeners = this.eventListenerMap[rbEvent.event]; isLoged ? null : _RBDebugger2.default.info('Dispatch event:[' + rbEvent.event + '] and find listeners count:[' + (listeners && listeners.length) + ']:', rbEvent.data); if (!listeners) return; for (var i = 0; i < listeners.length; i++) { try { listeners[i].call(rbEvent.src, rbEvent); } catch (e) { var message = e.message, fileName = e.fileName, lineNumber = e.lineNumber, stack = e.stack; isLoged ? null : _RBDebugger2.default.error('Dispatch event occured error,Cause by:' + message, { message: message, fileName: fileName, lineNumber: lineNumber, stack: stack }); } } } }, { key: 'addListener', value: function addListener(events, callBack) { if (!events) { throw new Error('The events is undefined.'); } var types = []; if (!Array.isArray(events)) { types.push(events); } else { types = events; } var _this = this, type = null; for (var i = 0; i < types.length; i++) { type = types[i]; var eventListeners = _this.eventListenerMap[type]; if (!eventListeners) { eventListeners = []; _this.eventListenerMap[type] = eventListeners; } eventListeners.push(callBack); } return this; } }, { key: 'removeListener', value: function removeListener(event) {} }]); return EventDispatcher; }(); var eventDispatcher = new EventDispatcher(); exports.default = eventDispatcher;