UNPKG

better-auth

Version:

The most comprehensive authentication framework for TypeScript.

1 lines 2.33 kB
{"version":3,"file":"online-manager.mjs","names":[],"sources":["../../src/client/online-manager.ts"],"sourcesContent":["export type OnlineListener = (online: boolean) => void;\n\nexport const kOnlineManager = Symbol.for(\"better-auth:online-manager\");\n\nexport interface OnlineManager {\n\tsetOnline(online: boolean): void;\n\tisOnline: boolean;\n\n\tsubscribe(listener: OnlineListener): () => void;\n\tsetup(): () => void;\n}\n\nclass WindowOnlineManager implements OnlineManager {\n\tlisteners = new Set<OnlineListener>();\n\tisOnline = typeof navigator !== \"undefined\" ? navigator.onLine : true;\n\n\tsubscribe(listener: OnlineListener) {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tsetOnline(online: boolean) {\n\t\tthis.isOnline = online;\n\t\tthis.listeners.forEach((listener) => listener(online));\n\t}\n\n\tsetup() {\n\t\tif (\n\t\t\ttypeof window === \"undefined\" ||\n\t\t\ttypeof window.addEventListener === \"undefined\"\n\t\t) {\n\t\t\treturn () => {};\n\t\t}\n\n\t\tconst onOnline = () => this.setOnline(true);\n\t\tconst onOffline = () => this.setOnline(false);\n\n\t\twindow.addEventListener(\"online\", onOnline, false);\n\t\twindow.addEventListener(\"offline\", onOffline, false);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"online\", onOnline, false);\n\t\t\twindow.removeEventListener(\"offline\", onOffline, false);\n\t\t};\n\t}\n}\n\nexport function getGlobalOnlineManager() {\n\tif (!(globalThis as any)[kOnlineManager]) {\n\t\t(globalThis as any)[kOnlineManager] = new WindowOnlineManager();\n\t}\n\treturn (globalThis as any)[kOnlineManager] as OnlineManager;\n}\n"],"mappings":";AAEA,MAAa,iBAAiB,OAAO,IAAI,6BAA6B;AAUtE,IAAM,sBAAN,MAAmD;CAClD,4BAAY,IAAI,KAAqB;CACrC,WAAW,OAAO,cAAc,cAAc,UAAU,SAAS;CAEjE,UAAU,UAA0B;AACnC,OAAK,UAAU,IAAI,SAAS;AAC5B,eAAa;AACZ,QAAK,UAAU,OAAO,SAAS;;;CAIjC,UAAU,QAAiB;AAC1B,OAAK,WAAW;AAChB,OAAK,UAAU,SAAS,aAAa,SAAS,OAAO,CAAC;;CAGvD,QAAQ;AACP,MACC,OAAO,WAAW,eAClB,OAAO,OAAO,qBAAqB,YAEnC,cAAa;EAGd,MAAM,iBAAiB,KAAK,UAAU,KAAK;EAC3C,MAAM,kBAAkB,KAAK,UAAU,MAAM;AAE7C,SAAO,iBAAiB,UAAU,UAAU,MAAM;AAClD,SAAO,iBAAiB,WAAW,WAAW,MAAM;AAEpD,eAAa;AACZ,UAAO,oBAAoB,UAAU,UAAU,MAAM;AACrD,UAAO,oBAAoB,WAAW,WAAW,MAAM;;;;AAK1D,SAAgB,yBAAyB;AACxC,KAAI,CAAE,WAAmB,gBACxB,CAAC,WAAmB,kBAAkB,IAAI,qBAAqB;AAEhE,QAAQ,WAAmB"}