frontend/.pnpm-store/v3/files/06/e7ed1d58ea755d30f718d4b95cfeaf319ef82fae29d67243717198e2b2d005556abd49b02a16ea6af2ad83bfa50a2f14e921371ee164f7b19dbf72ee354b41

23 lines
794 B
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// When attaching listeners, it's very easy to forget about them.
// Especially if you do error handling and set timeouts.
// So instead of checking if it's proper to throw an error on every timeout ever,
// use this simple tool which will remove all listeners you have attached.
exports.default = () => {
const handlers = [];
return {
once(origin, event, fn) {
origin.once(event, fn);
handlers.push({ origin, event, fn });
},
unhandleAll() {
for (const handler of handlers) {
const { origin, event, fn } = handler;
origin.removeListener(event, fn);
}
handlers.length = 0;
}
};
};