diff --git a/scripts/prepareServiceWorker.ts b/scripts/prepareServiceWorker.ts new file mode 100644 index 000000000..71f3ebbc7 --- /dev/null +++ b/scripts/prepareServiceWorker.ts @@ -0,0 +1,21 @@ +import Script from "./Script" +import Constants from "../src/Models/Constants" +import { writeFileSync } from "fs" + +class PrepareServiceWorker extends Script { + constructor() { + super("Super various little jobs to help the service worker") + + } + + public async main() { + const v = Constants.vNumber + writeFileSync("./src/service-worker/SWGenerated.ts", + ["export class SWGenerated {", + "// generated by scripts/prepareServiceWorker.ts", + "static vNumber = " + JSON.stringify(v), "}"].join("\n") + , "utf8") + } +} + +new PrepareServiceWorker().run() diff --git a/src/Logic/Web/IsOnline.ts b/src/Logic/Web/IsOnline.ts new file mode 100644 index 000000000..9764c177d --- /dev/null +++ b/src/Logic/Web/IsOnline.ts @@ -0,0 +1,19 @@ +import { Store, UIEventSource } from "../UIEventSource" + +export class IsOnline { + private static readonly _isOnline: UIEventSource = new UIEventSource(navigator.onLine) + static { + + window.addEventListener("online", () => { + IsOnline._isOnline.set(true) + }) + + window.addEventListener("offline", () => { + IsOnline._isOnline.set(false) + + }) + } + + public static readonly isOnline: Store = IsOnline._isOnline + +} diff --git a/src/service-worker/SWGenerated.ts b/src/service-worker/SWGenerated.ts new file mode 100644 index 000000000..23483a4c5 --- /dev/null +++ b/src/service-worker/SWGenerated.ts @@ -0,0 +1,4 @@ +export class SWGenerated { +// generated by scripts/prepareServiceWorker.ts +static vNumber = "0.54.4" +} \ No newline at end of file