This commit is contained in:
wearrrrr 2024-04-22 18:55:37 -05:00
parent 93d48c7277
commit e9ec201450
2 changed files with 40 additions and 0 deletions

View 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
})
}
}