UNPKG

3.34 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _getIterator2 = require("babel-runtime/core-js/get-iterator");
8
9var _getIterator3 = _interopRequireDefault(_getIterator2);
10
11var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
12
13var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14
15var _createClass2 = require("babel-runtime/helpers/createClass");
16
17var _createClass3 = _interopRequireDefault(_createClass2);
18
19function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21/*
22Copyright 2015, 2016 OpenMarket Ltd
23Copyright 2017 Vector Creations Ltd
24Copyright 2017 New Vector Ltd
25
26Licensed under the Apache License, Version 2.0 (the "License");
27you may not use this file except in compliance with the License.
28You may obtain a copy of the License at
29
30 http://www.apache.org/licenses/LICENSE-2.0
31
32Unless required by applicable law or agreed to in writing, software
33distributed under the License is distributed on an "AS IS" BASIS,
34WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
35See the License for the specific language governing permissions and
36limitations under the License.
37*/
38
39/**
40 * @module
41 */
42
43var Reemitter = function () {
44 function Reemitter(target) {
45 (0, _classCallCheck3.default)(this, Reemitter);
46
47 this.target = target;
48
49 // We keep one bound event handler for each event name so we know
50 // what event is arriving
51 this.boundHandlers = {};
52 }
53
54 (0, _createClass3.default)(Reemitter, [{
55 key: "_handleEvent",
56 value: function _handleEvent(eventName) {
57 var _target;
58
59 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
60 args[_key - 1] = arguments[_key];
61 }
62
63 (_target = this.target).emit.apply(_target, [eventName].concat(args));
64 }
65 }, {
66 key: "reEmit",
67 value: function reEmit(source, eventNames) {
68 var _iteratorNormalCompletion = true;
69 var _didIteratorError = false;
70 var _iteratorError = undefined;
71
72 try {
73 for (var _iterator = (0, _getIterator3.default)(eventNames), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
74 var eventName = _step.value;
75
76 if (this.boundHandlers[eventName] === undefined) {
77 this.boundHandlers[eventName] = this._handleEvent.bind(this, eventName);
78 }
79 var boundHandler = this.boundHandlers[eventName];
80
81 source.on(eventName, boundHandler);
82 }
83 } catch (err) {
84 _didIteratorError = true;
85 _iteratorError = err;
86 } finally {
87 try {
88 if (!_iteratorNormalCompletion && _iterator.return) {
89 _iterator.return();
90 }
91 } finally {
92 if (_didIteratorError) {
93 throw _iteratorError;
94 }
95 }
96 }
97 }
98 }]);
99 return Reemitter;
100}();
101
102exports.default = Reemitter;
103//# sourceMappingURL=ReEmitter.js.map
\No newline at end of file