Move service worker digestion into separate class and add static function to check if it is supported by the browser. Change ram-exceed-ios waring accordingly.

This commit is contained in:
schlagmichdoch 2024-02-15 18:05:48 +01:00
parent 90f10910aa
commit f4a947527d
3 changed files with 178 additions and 105 deletions

View file

@ -1,14 +1,17 @@
self.addEventListener('message', async e => {
try {
switch (e.data.type) {
case "check-support":
await checkSupport();
break;
case "part":
await this.onPart(e.data.name, e.data.buffer, e.data.offset);
await onPart(e.data.name, e.data.buffer, e.data.offset);
break;
case "get-file":
await this.onGetFile(e.data.name);
await onGetFile(e.data.name);
break;
case "delete-file":
await this.onDeleteFile(e.data.name);
await onDeleteFile(e.data.name);
break;
}
}
@ -17,6 +20,16 @@ self.addEventListener('message', async e => {
}
})
async function checkSupport() {
try {
await getAccessHandle("test.txt");
self.postMessage({type: "support", supported: true});
}
catch (e) {
self.postMessage({type: "support", supported: false});
}
}
async function getFileHandle(fileName) {
const root = await navigator.storage.getDirectory();
return await root.getFileHandle(fileName, {create: true});