wait-for-event
Version:
Wait for events to be emitted.
47 lines (36 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.waitFor = void 0;
var _utils = require("./utils");
var waitFor = function waitFor(event, emitter, callback) {
var promise = new Promise(function (resolve, reject) {
var startListening = function startListening() {
(0, _utils.addListener)(emitter, event, handleEvent);
(0, _utils.addListener)(emitter, 'error', handleError);
};
var stopListening = function stopListening() {
(0, _utils.removeListener)(emitter, event, handleEvent);
(0, _utils.removeListener)(emitter, 'error', handleError);
};
var handleEvent = function handleEvent() {
stopListening();
resolve();
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
var handleError = function handleError(error) {
stopListening();
reject(error);
};
startListening();
});
if (callback) {
promise.then(function () {
return callback(undefined);
}, function (error) {
return callback(error);
});
}
return promise;
};
exports.waitFor = waitFor;