Revert
This commit is contained in:
parent
93d48c7277
commit
e9ec201450
2 changed files with 40 additions and 0 deletions
40
src/components/ts/LoadExtensions.ts
Normal file
40
src/components/ts/LoadExtensions.ts
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
type Extension = {
|
||||||
|
name: string;
|
||||||
|
script: string;
|
||||||
|
serviceWorkerExtension: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function retrieveExtensions() {
|
||||||
|
const extensionsArr: Array<Extension> = [];
|
||||||
|
const db = await new Promise<IDBDatabase>((resolve, reject) => {
|
||||||
|
const request = indexedDB.open("AluDB", 1);
|
||||||
|
request.onsuccess = () => resolve(request.result);
|
||||||
|
request.onerror = reject;
|
||||||
|
});
|
||||||
|
|
||||||
|
const transaction = (await db).transaction("InstalledExtensions", "readwrite");
|
||||||
|
const objectStore = transaction.objectStore("InstalledExtensions");
|
||||||
|
const extensions: Array<Extension> = await new Promise((resolve, reject) => {
|
||||||
|
const request = objectStore.getAll();
|
||||||
|
request.onsuccess = () => resolve(request.result);
|
||||||
|
request.onerror = reject;
|
||||||
|
});
|
||||||
|
|
||||||
|
extensions.forEach(async (extension: Extension) => {
|
||||||
|
if (extension.serviceWorkerExtension) {
|
||||||
|
extensionsArr.push(extension);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return extensionsArr;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function loadExtension(ext: Extension) {
|
||||||
|
console.log("Loading extension: ", ext.name);
|
||||||
|
if (ext.serviceWorkerExtension) {
|
||||||
|
// This needs to be post message'd into the service worker
|
||||||
|
navigator.serviceWorker.controller?.postMessage({
|
||||||
|
"listenerType": "fetch",
|
||||||
|
"payload": ext.script
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue