@tanstack/offline-transactions
Version:
Offline-first transaction capabilities for TanStack DB
32 lines (31 loc) • 723 B
JavaScript
class BaseLeaderElection {
constructor() {
this.isLeaderState = false;
this.listeners = /* @__PURE__ */ new Set();
}
isLeader() {
return this.isLeaderState;
}
onLeadershipChange(callback) {
this.listeners.add(callback);
return () => {
this.listeners.delete(callback);
};
}
notifyLeadershipChange(isLeader) {
if (this.isLeaderState !== isLeader) {
this.isLeaderState = isLeader;
for (const listener of this.listeners) {
try {
listener(isLeader);
} catch (error) {
console.warn(`Leadership change listener error:`, error);
}
}
}
}
}
export {
BaseLeaderElection
};
//# sourceMappingURL=LeaderElection.js.map