diff --git a/packages/app/src/Pages/ErrorPage.tsx b/packages/app/src/Pages/ErrorPage.tsx
index 2a1030e0..178a4e1d 100644
--- a/packages/app/src/Pages/ErrorPage.tsx
+++ b/packages/app/src/Pages/ErrorPage.tsx
@@ -9,7 +9,7 @@ const ErrorPage = () => {
console.error(error);
return (
-
+
@@ -21,15 +21,11 @@ const ErrorPage = () => {
}}>
- {
-
- {JSON.stringify(
- error instanceof Error ? { name: error.name, message: error.message, stack: error.stack } : error,
- undefined,
- " ",
- )}
-
- }
+
{error.message}
+
{error.message}
+
+ {error.stack}
+
);
};
diff --git a/packages/app/src/service-worker.ts b/packages/app/src/service-worker.ts
index 0f754e40..f0bf67af 100644
--- a/packages/app/src/service-worker.ts
+++ b/packages/app/src/service-worker.ts
@@ -15,6 +15,23 @@ import { formatShort } from "@/Utils/Number";
precacheAndRoute(self.__WB_MANIFEST);
clientsClaim();
+
+// cache everything in current domain /assets because precache doesn't seem to include everything
+registerRoute(
+ ({ url }) => url.origin === location.origin && url.pathname.startsWith("/assets"),
+ new StaleWhileRevalidate({
+ cacheName: "assets-cache",
+ plugins: [
+ new ExpirationPlugin({
+ maxEntries: 200,
+ matchOptions: {
+ ignoreVary: true,
+ }
+ }),
+ ],
+ }),
+);
+
registerRoute(
({ url }) => url.pathname.endsWith("/.well-known/nostr.json"),
new StaleWhileRevalidate({
@@ -32,13 +49,16 @@ registerRoute(
plugins: [
new ExpirationPlugin({
maxEntries: 200,
+ matchOptions: {
+ ignoreVary: true,
+ }
}),
],
}),
);
registerRoute(
- ({ url }) => url.pathname.endsWith("api/v1/preview"),
+ ({ url }) => url.origin === "https://api.snort.social" && url.pathname.startsWith("/api/v1/preview"),
new StaleWhileRevalidate({
cacheName: "preview-cache",
plugins: [new ExpirationPlugin({ maxAgeSeconds: 4 * 60 * 60 })],
diff --git a/packages/app/vite.config.ts b/packages/app/vite.config.ts
index 7e0c1692..bdab157b 100644
--- a/packages/app/vite.config.ts
+++ b/packages/app/vite.config.ts
@@ -18,6 +18,10 @@ export default defineConfig({
enabled: true,
type: "module",
},
+ workbox: {
+ globPatterns: ['**/*.{js,html,wasm,woff,woff2,ttf,svg,png,jpg,jpeg,webp,ico,json}'],
+ sourcemap: true,
+ }
}),
visualizer({
open: true,