@simplito/privmx-webendpoint
Version:
PrivMX Web Endpoint library
26 lines (25 loc) • 785 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StateChangeDispatcher = void 0;
class StateChangeDispatcher {
listeners = new Set();
addOnStateChangeListener(filter, listener) {
const entry = { filter, listener };
this.listeners.add(entry);
}
removeOnStateChangeListener(filter) {
for (const value of this.listeners.values()) {
if (value.filter === filter) {
this.listeners.delete(value);
}
}
}
emit(event) {
for (const { filter, listener } of this.listeners) {
if (filter.streamHandle === event.streamHandle) {
listener(event);
}
}
}
}
exports.StateChangeDispatcher = StateChangeDispatcher;