summaryrefslogtreecommitdiffstats
path: root/sw.min.js
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@blos.sm>2024-07-16 13:12:33 +0100
committerLibravatar cel 🌸 <cel@blos.sm>2024-07-16 13:12:33 +0100
commitfd0ea710395904e1b4cf5f22fd17af13db43ce5f (patch)
treec694efa675d3ad1daab3b1d9cfea737a805f1977 /sw.min.js
parente5e763f1d7d473b22d8c2e7f4a0058ada7832c24 (diff)
downloadinfoculture.pub-fd0ea710395904e1b4cf5f22fd17af13db43ce5f.tar.gz
infoculture.pub-fd0ea710395904e1b4cf5f22fd17af13db43ce5f.tar.bz2
infoculture.pub-fd0ea710395904e1b4cf5f22fd17af13db43ce5f.zip
webtorrent and teaser support
Diffstat (limited to 'sw.min.js')
-rw-r--r--sw.min.js2
1 files changed, 2 insertions, 0 deletions
diff --git a/sw.min.js b/sw.min.js
new file mode 100644
index 0000000..1ccc2af
--- /dev/null
+++ b/sw.min.js
@@ -0,0 +1,2 @@
+(()=>{"use strict";let e=!1;self.addEventListener("install",(()=>{self.skipWaiting()})),self.addEventListener("fetch",(s=>{const t=(s=>{const{url:t}=s.request;return t.includes(self.registration.scope+"webtorrent/")?t.includes(self.registration.scope+"webtorrent/keepalive/")?new Response:t.includes(self.registration.scope+"webtorrent/cancel/")?new Response(new ReadableStream({cancel(){e=!0}})):async function({request:s}){const{url:t,method:n,headers:o,destination:a}=s,l=await clients.matchAll({type:"window",includeUncontrolled:!0}),[r,i]=await new Promise((e=>{for(const s of l){const l=new MessageChannel,{port1:r,port2:i}=l;r.onmessage=({data:s})=>{e([s,r])},s.postMessage({url:t,method:n,headers:Object.fromEntries(o.entries()),scope:self.registration.scope,destination:a,type:"webtorrent"},[i])}}));let c=null;const d=()=>{i.postMessage(!1),clearTimeout(c),i.onmessage=null};return"STREAM"!==r.body?(d(),new Response(r.body,r)):new Response(new ReadableStream({pull:s=>new Promise((t=>{i.onmessage=({data:e})=>{e?s.enqueue(e):(d(),s.close()),t()},e||(clearTimeout(c),"document"!==a&&(c=setTimeout((()=>{d(),t()}),5e3))),i.postMessage(!0)})),cancel(){d()}}),r)}(s):null})(s);t&&s.respondWith(t)})),self.addEventListener("activate",(()=>{self.clients.claim()}))})();
+//# sourceMappingURL=sw.min.js.map