Prevent a new ServiceWorker from being installed after the page loads

environments/review-lock-sw-1vkywj/deployments/4271
Alex Gleason 10 months ago
parent c99db221a3
commit 8ba328d96b
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7

@ -25,11 +25,12 @@ import './styles/tailwind.css';
import './precheck';
import ready from './ready';
import { registerSW } from './utils/sw';
import { registerSW, lockSW } from './utils/sw';
if (BuildConfig.NODE_ENV === 'production') {
printConsoleWarning();
registerSW('/sw.js');
lockSW();
}
ready(() => {

@ -7,6 +7,15 @@ function registerSW(path: string) {
}
}
/** Prevent a new ServiceWorker from being installed. */
function lockSW() {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register = () => {
throw new Error('ServiceWorker already registered.');
};
}
}
/** Unregister the ServiceWorker */
// https://stackoverflow.com/a/49771828/8811886
const unregisterSW = async(): Promise<void> => {
@ -22,4 +31,5 @@ const unregisterSW = async(): Promise<void> => {
export {
registerSW,
unregisterSW,
lockSW,
};
Loading…
Cancel
Save