From f8e2f64316354b36099a01eef0735ec0970f5b99 Mon Sep 17 00:00:00 2001
From: Wolfgang Müller
Date: Wed, 26 Mar 2025 19:40:28 +0100
Subject: frontend: Migrate to eslint-plugin-svelte 3.0
This includes a migration to a flat eslint.config.js, which will now
also automatically ignore items from .gitignore. eslint-plugin-svelte
3.0 comes with a couple of changes to recommended rules as well, these
are also addressed in this commit.
---
frontend/src/gql/Utils.ts | 2 ++
frontend/src/lib/Shortcuts.ts | 2 +-
frontend/src/lib/Toasts.ts | 2 +-
frontend/src/lib/Utils.ts | 1 -
frontend/src/lib/components/Dialog.svelte | 1 +
frontend/src/lib/dialogs/ConfirmDeletion.svelte | 2 +-
frontend/src/lib/dialogs/components/UpdateModeSelector.svelte | 2 +-
frontend/src/lib/gallery/Gallery.svelte | 2 +-
frontend/src/lib/pagination/Pagination.svelte | 2 +-
frontend/src/lib/reader/PageView.svelte | 3 ++-
frontend/src/lib/scraper/ComicScrapeForm.svelte | 3 ++-
frontend/src/lib/scraper/components/SelectorGroup.svelte | 1 +
frontend/src/lib/tabs/ArchiveDetails.svelte | 2 +-
frontend/src/lib/tabs/ArchiveEdit.svelte | 2 +-
frontend/src/lib/tabs/Tabs.svelte | 2 +-
frontend/src/lib/toolbar/SelectItems.svelte | 2 +-
frontend/src/lib/toolbar/SelectSort.svelte | 2 +-
frontend/src/routes/+page.svelte | 6 +++---
18 files changed, 22 insertions(+), 17 deletions(-)
(limited to 'frontend/src')
diff --git a/frontend/src/gql/Utils.ts b/frontend/src/gql/Utils.ts
index 177dff0..6fedd05 100644
--- a/frontend/src/gql/Utils.ts
+++ b/frontend/src/gql/Utils.ts
@@ -19,6 +19,7 @@ export function omitIdentifiers(
return omit(obj, '__typename', 'id');
}
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function isSuccess(object: any): object is gql.Success {
if (object.__typename === undefined) {
return false;
@@ -27,6 +28,7 @@ export function isSuccess(object: any): object is gql.Success {
return object.__typename.endsWith('Success') && (object as gql.Success).message !== undefined;
}
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function isError(object: any): object is gql.Error {
if (object.__typename === undefined) {
return false;
diff --git a/frontend/src/lib/Shortcuts.ts b/frontend/src/lib/Shortcuts.ts
index 82f19ac..259500c 100644
--- a/frontend/src/lib/Shortcuts.ts
+++ b/frontend/src/lib/Shortcuts.ts
@@ -35,7 +35,7 @@ const modeSwitches = ['n', 'g', 'i', 'e'] as const;
type ModeSwitch = (typeof modeSwitches)[number];
function isModeSwitch(s: string): s is ModeSwitch {
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
return modeSwitches.includes(s as any);
}
diff --git a/frontend/src/lib/Toasts.ts b/frontend/src/lib/Toasts.ts
index abc9a7d..224989b 100644
--- a/frontend/src/lib/Toasts.ts
+++ b/frontend/src/lib/Toasts.ts
@@ -15,5 +15,5 @@ export function toastError(message: string) {
});
}
-// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const toastFinally = (reason: any) => toastError(reason);
diff --git a/frontend/src/lib/Utils.ts b/frontend/src/lib/Utils.ts
index df7dad8..c347544 100644
--- a/frontend/src/lib/Utils.ts
+++ b/frontend/src/lib/Utils.ts
@@ -35,7 +35,6 @@ export function getResultState(state: OperationResultState): ResultState {
if (state.error) {
message = `${state.error.name}: ${state.error.message}`;
} else if (state.data) {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
const obj = Object.values(state.data)[0];
if (isError(obj)) {
message = obj.message;
diff --git a/frontend/src/lib/components/Dialog.svelte b/frontend/src/lib/components/Dialog.svelte
index d300369..721d670 100644
--- a/frontend/src/lib/components/Dialog.svelte
+++ b/frontend/src/lib/components/Dialog.svelte
@@ -10,6 +10,7 @@
children?: Snippet;
}
+ // eslint-disable-next-line svelte/no-unused-props
let { isOpen, close, title, children }: Props = $props();
diff --git a/frontend/src/lib/dialogs/ConfirmDeletion.svelte b/frontend/src/lib/dialogs/ConfirmDeletion.svelte
index dde4ea7..53b1dd4 100644
--- a/frontend/src/lib/dialogs/ConfirmDeletion.svelte
+++ b/frontend/src/lib/dialogs/ConfirmDeletion.svelte
@@ -31,7 +31,7 @@
{#if multiple}
- {#each names.slice(0, 10) as name}
+ {#each names.slice(0, 10) as name (name)}
- {name}
{/each}
diff --git a/frontend/src/lib/dialogs/components/UpdateModeSelector.svelte b/frontend/src/lib/dialogs/components/UpdateModeSelector.svelte
index 1a2307d..876657e 100644
--- a/frontend/src/lib/dialogs/components/UpdateModeSelector.svelte
+++ b/frontend/src/lib/dialogs/components/UpdateModeSelector.svelte
@@ -6,7 +6,7 @@
- {#each Object.entries(UpdateModeLabel) as [e, label]}
+ {#each Object.entries(UpdateModeLabel) as [e, label] (e)}