UNPKG

@turbox3d/shared

Version:

turbox shared internal utility

49 lines (48 loc) 1.52 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.emitter = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var Emitter = /*#__PURE__*/function () { function Emitter() { (0, _classCallCheck2["default"])(this, Emitter); this.listeners = {}; } return (0, _createClass2["default"])(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] = []; } }]); }(); var emitter = exports.emitter = new Emitter();