@simplito/privmx-webendpoint
Version:
PrivMX Web Endpoint library
44 lines (43 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MockEventQueue = void 0;
// import {Channel} from "../../managers";
class MockEventQueue {
queue = [];
resolveCommand = null;
constructor() { }
dispatchEvent(event) {
this.queue.push(event);
if (this.resolveCommand) {
this.resolveCommand.resolver();
this.resolveCommand = null;
}
}
async waitEvent() {
const lockPromise = new Promise((resolve) => {
const event = this.queue.shift();
//if there is event in queue resolve immediately
if (event) {
resolve(event);
}
else {
//if not, lock promise and unlock it on new event
this.resolveCommand = {
resolver: () => {
const event = this.queue.shift();
if (event) {
resolve(event);
}
},
};
}
});
return lockPromise;
}
async emitBreakEvent() {
return new Promise((resolve) => {
resolve;
});
}
}
exports.MockEventQueue = MockEventQueue;