From 7e7bbacbbfa0e3b9e31c05226a4fe9c761e5adb4 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Wed, 12 May 2021 18:24:38 +0200 Subject: [PATCH] Check if service worker is available in browser before tying to register Signed-off-by: Thomas Citharel --- js/src/registerServiceWorker.ts | 65 ++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/js/src/registerServiceWorker.ts b/js/src/registerServiceWorker.ts index 168a5cb5f..0d1a5b0db 100644 --- a/js/src/registerServiceWorker.ts +++ b/js/src/registerServiceWorker.ts @@ -2,33 +2,38 @@ import { register } from "register-service-worker"; -// if (process.env.NODE_ENV === "production") { -register(`${process.env.BASE_URL}service-worker.js`, { - ready() { - console.log( - "App is being served from cache by a service worker.\n" + - "For more details, visit https://goo.gl/AFskqB" - ); - }, - registered() { - console.log("Service worker has been registered."); - }, - cached() { - console.log("Content has been cached for offline use."); - }, - updatefound() { - console.log("New content is downloading."); - }, - updated() { - console.log("New content is available; please refresh."); - }, - offline() { - console.log( - "No internet connection found. App is running in offline mode." - ); - }, - error(error) { - console.error("Error during service worker registration:", error); - }, -}); -// } +if ("serviceWorker" in navigator && isProduction()) { + register(`${process.env.BASE_URL}service-worker.js`, { + ready() { + console.log( + "App is being served from cache by a service worker.\n" + + "For more details, visit https://goo.gl/AFskqB" + ); + }, + registered() { + console.log("Service worker has been registered."); + }, + cached() { + console.log("Content has been cached for offline use."); + }, + updatefound() { + console.log("New content is downloading."); + }, + updated() { + console.log("New content is available; please refresh."); + }, + offline() { + console.log( + "No internet connection found. App is running in offline mode." + ); + }, + error(error) { + console.error("Error during service worker registration:", error); + }, + }); +} + +function isProduction(): boolean { + // return true; + return process.env.NODE_ENV === "production"; +}