better-auth
Version:
The most comprehensive authentication framework for TypeScript.
35 lines (34 loc) • 1.21 kB
JavaScript
//#region src/client/online-manager.ts
const kOnlineManager = Symbol.for("better-auth:online-manager");
var WindowOnlineManager = class {
listeners = /* @__PURE__ */ new Set();
isOnline = typeof navigator !== "undefined" ? navigator.onLine : true;
subscribe(listener) {
this.listeners.add(listener);
return () => {
this.listeners.delete(listener);
};
}
setOnline(online) {
this.isOnline = online;
this.listeners.forEach((listener) => listener(online));
}
setup() {
if (typeof window === "undefined" || typeof window.addEventListener === "undefined") return () => {};
const onOnline = () => this.setOnline(true);
const onOffline = () => this.setOnline(false);
window.addEventListener("online", onOnline, false);
window.addEventListener("offline", onOffline, false);
return () => {
window.removeEventListener("online", onOnline, false);
window.removeEventListener("offline", onOffline, false);
};
}
};
function getGlobalOnlineManager() {
if (!globalThis[kOnlineManager]) globalThis[kOnlineManager] = new WindowOnlineManager();
return globalThis[kOnlineManager];
}
//#endregion
export { getGlobalOnlineManager, kOnlineManager };
//# sourceMappingURL=online-manager.mjs.map