UNPKG

@turbox3d/shared

Version:

turbox shared internal utility

42 lines 1.24 kB
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck"; import _createClass from "@babel/runtime/helpers/esm/createClass"; var Emitter = /*#__PURE__*/function () { function Emitter() { _classCallCheck(this, Emitter); this.listeners = {}; } return _createClass(Emitter, [{ key: "on", value: function on(eventName, callback) { var listeners = this.listeners[eventName] || []; listeners.push(callback); this.listeners[eventName] = listeners; } }, { key: "emit", value: function emit(eventName) { var _this = this; for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } var listeners = this.listeners[eventName]; if (!Array.isArray(listeners)) return; listeners.forEach(function (callback) { try { callback.apply(_this, args); } catch (e) { console.error(e); } }); } }, { key: "off", value: function off(eventName) { if (!this.listeners[eventName]) { return; } this.listeners[eventName] = []; } }]); }(); export var emitter = new Emitter();