数通智联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.3 KiB

2 years ago
"use strict";
function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
var id = 0;
function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
var _emitter = /*#__PURE__*/_classPrivateFieldLooseKey("emitter");
var _events = /*#__PURE__*/_classPrivateFieldLooseKey("events");
class EventTracker {
constructor(emitter) {
Object.defineProperty(this, _emitter, {
writable: true,
value: void 0
});
Object.defineProperty(this, _events, {
writable: true,
value: []
});
_classPrivateFieldLooseBase(this, _emitter)[_emitter] = emitter;
}
on(event, fn) {
_classPrivateFieldLooseBase(this, _events)[_events].push([event, fn]);
return _classPrivateFieldLooseBase(this, _emitter)[_emitter].on(event, fn);
}
remove() {
for (const [event, fn] of _classPrivateFieldLooseBase(this, _events)[_events].splice(0)) {
_classPrivateFieldLooseBase(this, _emitter)[_emitter].off(event, fn);
}
}
}
/**
* Create a wrapper around an event emitter with a `remove` method to remove
* all events that were added using the wrapped emitter.
*/
module.exports = EventTracker;