-
Notifications
You must be signed in to change notification settings - Fork 57
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #802 from unoplatform/mergify/bp/release/stable/8.…
…0/pr-801 fix: Disable service worker in debug to work around service workers interfering with browserlink (backport #801)
- Loading branch information
Showing
1 changed file
with
44 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,51 @@ | ||
import { config } from "$(REMOTE_WEBAPP_PATH)$(REMOTE_BASE_PATH)/uno-config.js"; | ||
|
||
console.debug("[ServiceWorker] Initializing"); | ||
if (config.environmentVariables["UNO_BOOTSTRAP_DEBUGGER_ENABLED"] !== "True") { | ||
console.debug("[ServiceWorker] Initializing"); | ||
|
||
self.addEventListener('install', function (e) { | ||
console.debug('[ServiceWorker] Installing offline worker'); | ||
e.waitUntil( | ||
caches.open('$(CACHE_KEY)').then(async function (cache) { | ||
console.debug('[ServiceWorker] Caching app binaries and content'); | ||
self.addEventListener('install', function (e) { | ||
console.debug('[ServiceWorker] Installing offline worker'); | ||
e.waitUntil( | ||
caches.open('$(CACHE_KEY)').then(async function (cache) { | ||
console.debug('[ServiceWorker] Caching app binaries and content'); | ||
|
||
// Add files one by one to avoid failed downloads to prevent the | ||
// worker to fail installing. | ||
for (var i = 0; i < config.offline_files.length; i++) { | ||
try { | ||
await cache.add(config.offline_files[i]); | ||
// Add files one by one to avoid failed downloads to prevent the | ||
// worker to fail installing. | ||
for (var i = 0; i < config.offline_files.length; i++) { | ||
try { | ||
await cache.add(config.offline_files[i]); | ||
} | ||
catch (e) { | ||
console.debug(`[ServiceWorker] Failed to fetch ${config.offline_files[i]}`); | ||
} | ||
} | ||
catch (e) { | ||
console.debug(`[ServiceWorker] Failed to fetch ${config.offline_files[i]}`); | ||
} | ||
} | ||
}) | ||
); | ||
}); | ||
}) | ||
); | ||
}); | ||
|
||
self.addEventListener('activate', event => { | ||
event.waitUntil(self.clients.claim()); | ||
}); | ||
self.addEventListener('activate', event => { | ||
event.waitUntil(self.clients.claim()); | ||
}); | ||
|
||
self.addEventListener('fetch', event => { | ||
event.respondWith(async function () { | ||
try { | ||
// Network first mode to get fresh content every time, then fallback to | ||
// cache content if needed. | ||
return await fetch(event.request); | ||
} catch (err) { | ||
return caches.match(event.request).then(response => { | ||
return response || fetch(event.request); | ||
}); | ||
} | ||
}()); | ||
}); | ||
self.addEventListener('fetch', event => { | ||
event.respondWith(async function () { | ||
try { | ||
// Network first mode to get fresh content every time, then fallback to | ||
// cache content if needed. | ||
return await fetch(event.request); | ||
} catch (err) { | ||
return caches.match(event.request).then(response => { | ||
return response || fetch(event.request); | ||
}); | ||
} | ||
}()); | ||
}); | ||
} | ||
else { | ||
// In development, always fetch from the network and do not enable offline support. | ||
// This is because caching would make development more difficult (changes would not | ||
// be reflected on the first load after each change). | ||
// It also breaks the hot reload feature because VS's browserlink is not always able to | ||
// inject its own framework in the served scripts and pages. | ||
self.addEventListener('fetch', () => { }); | ||
} |