diff --git a/.eslintrc.cjs b/.eslintrc.cjs index d3623c7..feddea3 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -15,7 +15,7 @@ module.exports = { "prefer-const": "error", "no-case-declarations": "off" }, - ignorePatterns: ["env.d.ts"], + ignorePatterns: ["env.d.ts", "middleware/", "public/"], overrides: [ { files: ["*.astro"], diff --git a/src/components/loaders/PageScriptLoader.astro b/src/components/loaders/PageScriptLoader.astro index 269da16..ab48f29 100644 --- a/src/components/loaders/PageScriptLoader.astro +++ b/src/components/loaders/PageScriptLoader.astro @@ -7,7 +7,7 @@ // TODO: Get rid of this ugly type assertion!! const result = (event.target as IDBRequest).result; if (result) { - result.forEach((extension: ExtensionMetadata) => { + result.forEach((extension: ExtPageMetadata) => { if (extension.type === "page") { const decoder = new TextDecoder(); const script = decoder.decode(extension.scriptCopy!); diff --git a/src/components/loaders/ThemeLoader.astro b/src/components/loaders/ThemeLoader.astro index 3d8d3c1..ec05fdd 100644 --- a/src/components/loaders/ThemeLoader.astro +++ b/src/components/loaders/ThemeLoader.astro @@ -17,7 +17,7 @@ store.getAll().onsuccess = (event) => { const result = (event.target as IDBRequest).result; if (result) { - result.forEach((extension: ExtensionMetadata) => { + result.forEach((extension: ExtThemeMetadata) => { if (extension.type === "theme" && extension.themeName) { // Load theme CSS const decoder = new TextDecoder(); diff --git a/src/components/ts/settings.ts b/src/components/ts/settings.ts index e3f591b..fb11472 100644 --- a/src/components/ts/settings.ts +++ b/src/components/ts/settings.ts @@ -166,7 +166,7 @@ function applyInputListeners(inputs: HTMLInputElement[], localStorageItem: Alu.V // }); // } -function addThemeToDropdown(extension: ExtensionMetadata) { +function addThemeToDropdown(extension: ExtThemeMetadata) { const dropdown = document.getElementById("dropdown__selected-theme-menu"); if (dropdown) { // TODO: Figure out why addThemeToDropdown is being called 6 times @@ -230,7 +230,7 @@ function setupCustomizationSettings() { store.getAll().onsuccess = (event) => { const result = (event.target as IDBRequest).result; if (result) { - result.forEach((extension: ExtensionMetadata) => { + result.forEach((extension: ExtThemeMetadata) => { if (extension.type === "theme" && extension.themeName) { // Create a dropdown item for the theme addThemeToDropdown(extension); diff --git a/src/types.d.ts b/src/types.d.ts index d32f472..73b1a89 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -36,13 +36,21 @@ interface ExtensionMetadata { version: string; image: string; script: string; - pages?: string[]; - entryNamespace?: string; - entryFunc?: string; - init?: string; scriptCopy?: Uint8Array | null; type: ExtType; - themeName?: string; +} + +interface ExtServiceWorkerMetadata extends ExtensionMetadata { + entryNamespace: string; + entryFunc: string; +} + +interface ExtPageMetadata extends ExtensionMetadata { + init: string; +} + +interface ExtThemeMetadata extends ExtensionMetadata { + themeName: string; } type ExtensionMetadataJSON = Record;