UNPKG

@qier-player/danmaku

Version:

Powerful danmaku, support many features.

74 lines 2.31 kB
var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; var EventEmitter = /** @class */ (function () { function EventEmitter() { this._events = Object.create(null); } EventEmitter.prototype.emit = function (evt) { var _this = this; var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (!this._events[evt]) return false; var fns = __spreadArray([], this._events[evt]); fns.forEach(function (fn) { fn.apply(_this, args); }); return true; }; EventEmitter.prototype.on = function (evt, fn) { if (typeof fn !== 'function') { throw new TypeError('The event-triggered callback must be a function.'); } if (!this._events[evt]) { this._events[evt] = [fn]; } else { this._events[evt].push(fn); } return { dispose: this.off.bind(this, evt, fn) }; }; EventEmitter.prototype.once = function (evt, fn) { var _this = this; var execFn = function () { fn === null || fn === void 0 ? void 0 : fn.apply(_this); _this.off(evt, execFn); }; return this.on(evt, execFn); }; EventEmitter.prototype.off = function (evt, fn) { if (!this._events[evt]) return this; if (!fn) { this._events[evt] && (this._events[evt].length = 0); return this; } var cb; var cbLen = this._events[evt].length; for (var i = 0; i < cbLen; i++) { cb = this._events[evt][i]; if (cb === fn) { this._events[evt].splice(i, 1); break; } } return this; }; EventEmitter.prototype.removeAllListeners = function (evt) { if (evt) { this._events[evt] && (this._events[evt].length = 0); } else { this._events = Object.create(null); } return this; }; return EventEmitter; }()); export { EventEmitter }; //# sourceMappingURL=eventmitter.js.map