Files
goTorrent/goTorrentWebUI/node_modules/react-toastify/lib/util/EventManager.js

47 lines
1.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var eventManager = {
eventList: new Map(),
on: function on(event, callback) {
this.eventList.has(event) || this.eventList.set(event, []);
this.eventList.get(event).push(callback);
return this;
},
off: function off() {
var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
return this.eventList.delete(event);
},
emit: function emit(event) {
var _this = this;
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
if (!this.eventList.has(event)) {
/* eslint no-console: 0 */
console.warn("<" + event + "> Event is not registered. Did you forgot to bind the event ?");
return false;
}
this.eventList.get(event).forEach(function (callback) {
return setTimeout(function () {
return callback.call.apply(callback, [_this].concat(_toConsumableArray(args)));
}, 0);
});
return true;
}
};
exports.default = eventManager;