From 8184aaf7b5317078946ff3708b1cb44742bc448b Mon Sep 17 00:00:00 2001 From: kjuulh Date: Mon, 15 Nov 2021 14:23:40 +0100 Subject: [PATCH] Add pwa --- src/client/next.config.js | 4 +++- src/client/{src => }/public/sw.js | 2 +- src/client/{src => }/public/workbox-4a677df8.js | 0 3 files changed, 4 insertions(+), 2 deletions(-) rename src/client/{src => }/public/sw.js (64%) rename src/client/{src => }/public/workbox-4a677df8.js (100%) diff --git a/src/client/next.config.js b/src/client/next.config.js index 402d2df..27d8a74 100644 --- a/src/client/next.config.js +++ b/src/client/next.config.js @@ -13,7 +13,9 @@ module.exports = (phase, { defaultConfig }) => { return withPWA({ reactStrictMode: true, pwa: { - dest: "src/public", + dest: "public", + register: true, + skipWaiting: true, runtimeCaching, }, }); diff --git a/src/client/src/public/sw.js b/src/client/public/sw.js similarity index 64% rename from src/client/src/public/sw.js rename to src/client/public/sw.js index 874baec..68aaf97 100644 --- a/src/client/src/public/sw.js +++ b/src/client/public/sw.js @@ -1 +1 @@ -if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return n[e]||(s=new Promise((async s=>{if("document"in self){const n=document.createElement("script");n.src=e,document.head.appendChild(n),n.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!n[e])throw new Error(`Module ${e} didn’t register its module`);return n[e]}))},s=(s,n)=>{Promise.all(s.map(e)).then((e=>n(1===e.length?e[0]:e)))},n={require:Promise.resolve(s)};self.define=(s,t,i)=>{n[s]||(n[s]=Promise.resolve().then((()=>{let n={};const a={uri:location.origin+s.slice(1)};return Promise.all(t.map((s=>{switch(s){case"exports":return n;case"module":return a;default:return e(s)}}))).then((e=>{const s=i(...e);return n.default||(n.default=s),n}))})))}}define("./sw.js",["./workbox-4a677df8"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/server/middleware-manifest.json",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/4TP9dQyuVPf41nJKlwzux/_buildManifest.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/4TP9dQyuVPf41nJKlwzux/_middlewareManifest.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/4TP9dQyuVPf41nJKlwzux/_ssgManifest.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/chunks/framework-91d7f78b5b4003c8.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/chunks/main-a8edae0d785a1705.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/chunks/pages/_app-ef3e3deee1621c8d.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/chunks/pages/_error-2280fa386d040b66.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/chunks/pages/index-28c504d08cef4fe2.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/chunks/polyfills-5cd94c89d3acac5f.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/chunks/webpack-49b6f2937c9ce9f4.js",revision:"4TP9dQyuVPf41nJKlwzux"},{url:"/_next/static/css/2ad7e60191df7f15.css",revision:"4TP9dQyuVPf41nJKlwzux"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:n,state:t})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); +if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return t[e]||(s=new Promise((async s=>{if("document"in self){const t=document.createElement("script");t.src=e,document.head.appendChild(t),t.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!t[e])throw new Error(`Module ${e} didn’t register its module`);return t[e]}))},s=(s,t)=>{Promise.all(s.map(e)).then((e=>t(1===e.length?e[0]:e)))},t={require:Promise.resolve(s)};self.define=(s,n,i)=>{t[s]||(t[s]=Promise.resolve().then((()=>{let t={};const a={uri:location.origin+s.slice(1)};return Promise.all(n.map((s=>{switch(s){case"exports":return t;case"module":return a;default:return e(s)}}))).then((e=>{const s=i(...e);return t.default||(t.default=s),t}))})))}}define("./sw.js",["./workbox-4a677df8"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/server/middleware-manifest.json",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/Dvz1hLtO1Byiq3J9DYmq4/_buildManifest.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/Dvz1hLtO1Byiq3J9DYmq4/_middlewareManifest.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/Dvz1hLtO1Byiq3J9DYmq4/_ssgManifest.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/chunks/framework-91d7f78b5b4003c8.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/chunks/main-a8edae0d785a1705.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/chunks/pages/_app-ef3e3deee1621c8d.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/chunks/pages/_error-2280fa386d040b66.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/chunks/pages/index-28c504d08cef4fe2.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/chunks/polyfills-5cd94c89d3acac5f.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/chunks/webpack-49b6f2937c9ce9f4.js",revision:"Dvz1hLtO1Byiq3J9DYmq4"},{url:"/_next/static/css/2ad7e60191df7f15.css",revision:"Dvz1hLtO1Byiq3J9DYmq4"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:t,state:n})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); diff --git a/src/client/src/public/workbox-4a677df8.js b/src/client/public/workbox-4a677df8.js similarity index 100% rename from src/client/src/public/workbox-4a677df8.js rename to src/client/public/workbox-4a677df8.js