ade38247d8
A few things happening here - Delete our service worker. Turns out that a couple of years back browsers decided that a service worker is no longer required for a PWA so you can just have the manifest and still install on the user's device. - Cache tldraw's assets as part of the dotcom vite asset pipeline. This allows them to participate in the asset coalescing (preserving old versions of asset files so old clients don't stop working when you deploy new versions of things, see https://github.com/tldraw/brivate/pull/3132 for more context). - Add a new 'imports.vite.js' file to the assets package, because we import a bunch of json translation files, and vite imports .json files as parsed json objects instead of string urls, and there's no good way to tell it not to. Even if there was we wouldn't want to impose that config on our users. So another way to tell vite to load any asset as a url string is to append `?url` to the end of the import path. That's what this file does. closes [#2486](https://github.com/tldraw/tldraw/issues/2486) ### Change Type - [x] `minor` — New feature [^1]: publishes a `patch` release, for devDependencies use `internal` [^2]: will not publish a new version ### Release Notes - Fix 'could not load assets' error that we often see on tldraw.com after a deploy
19 lines
No EOL
552 B
JavaScript
19 lines
No EOL
552 B
JavaScript
// Self-destroying service worker
|
|
// Taken from https://www.benjaminrancourt.ca/how-to-remove-a-service-worker/
|
|
// Inspired from https://github.com/NekR/self-destroying-sw
|
|
self.addEventListener("install", (event) => {
|
|
self.skipWaiting();
|
|
});
|
|
|
|
self.addEventListener("activate", (event) => {
|
|
self.registration
|
|
.unregister()
|
|
.then(() => self.clients.matchAll())
|
|
.then((clients) => {
|
|
clients.forEach((client) => {
|
|
if (client.url && "navigate" in client) {
|
|
client.navigate(client.url);
|
|
}
|
|
});
|
|
});
|
|
}); |