chore: stop lint rules that do not model runes from reporting
no-unused-expressions is off for Svelte files: a bare `book;` in an $effect declares a dependency. The URL and Set instances it flagged are local temporaries, marked individually. The one real finding was visibleApiKeys, genuine reactive state cloned on every mutation to force an update; it is a SvelteSet now.
This commit is contained in:
@@ -36,7 +36,6 @@
|
||||
|
||||
$effect(() => {
|
||||
// whenever input value changes reset invalid
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
||||
inputValue;
|
||||
|
||||
untrack(() => {
|
||||
|
||||
@@ -105,6 +105,7 @@ export class BookCollectionState {
|
||||
|
||||
this.view = next;
|
||||
|
||||
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- local temporary, not reactive state
|
||||
const url = new URL(page.url);
|
||||
url.searchParams.set('view', next);
|
||||
// Not a route to resolve — this is the current URL with one query param
|
||||
@@ -138,6 +139,7 @@ export class BookCollectionState {
|
||||
|
||||
updateSearchParams() {
|
||||
// Update URL
|
||||
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- local temporary, not reactive state
|
||||
const url = new URL(window.location.href);
|
||||
|
||||
Object.entries(this.filters).forEach(([filter, values]) => {
|
||||
@@ -215,6 +217,7 @@ export class BookCollectionState {
|
||||
// and skips every page in between.
|
||||
this.currentBookPage = 1;
|
||||
|
||||
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- local temporary, not reactive state
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
|
||||
// Re-read sort and filter state from URL
|
||||
|
||||
@@ -131,6 +131,7 @@ export class BookOperationsState {
|
||||
|
||||
async downloadBooks(bookIds: string[] | number[], filename?: string) {
|
||||
// Construct the download URL
|
||||
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- local temporary, not reactive state
|
||||
const downloadUrl = new URL(`/api/books/download`, page.url.origin);
|
||||
downloadUrl.searchParams.set('library_id', this.libraryId);
|
||||
bookIds.forEach((id) => {
|
||||
@@ -142,6 +143,7 @@ export class BookOperationsState {
|
||||
|
||||
async downloadBookFile(bookId: number, fileId: number, filename: string) {
|
||||
// Construct the download URL
|
||||
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- local temporary, not reactive state
|
||||
const downloadUrl = new URL(`/api/books/download/${bookId}/${fileId}`, page.url.origin);
|
||||
this.download(downloadUrl, filename);
|
||||
}
|
||||
|
||||
@@ -116,6 +116,7 @@ export class BookshelfState {
|
||||
if (!bookshelves) return;
|
||||
|
||||
// Create a Set of shelf IDs that need updating for efficient lookup
|
||||
// eslint-disable-next-line svelte/prefer-svelte-reactivity -- local temporary, not reactive state
|
||||
const shelfIdsToUpdate = new Set<number>();
|
||||
books.forEach((book) => {
|
||||
book.lists.forEach((shelf) => {
|
||||
|
||||
Reference in New Issue
Block a user