Prevent a new ServiceWorker from being installed after the page loads

This commit is contained in:
Alex Gleason
2023-11-20 13:45:52 -06:00
parent c99db221a3
commit 8ba328d96b
2 changed files with 12 additions and 1 deletions

View File

@ -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,
};