From 187170057d786bb0b6ad24ed69302ce57bb60c2a Mon Sep 17 00:00:00 2001 From: cucadmuh <49571317+cucadmuh@users.noreply.github.com> Date: Fri, 15 May 2026 20:06:10 +0300 Subject: [PATCH] fix(build): static import ratings cache invalidate; raise chunk warning limit (#723) Replace ineffective dynamic import of subsonicRatings from setRating (mix paths already statically load it). Set Vite chunkSizeWarningLimit to 1000 kB for desktop bundles. --- src/api/subsonicStarRating.ts | 10 ++++++---- vite.config.ts | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/api/subsonicStarRating.ts b/src/api/subsonicStarRating.ts index fa769afc..2ce82537 100644 --- a/src/api/subsonicStarRating.ts +++ b/src/api/subsonicStarRating.ts @@ -1,4 +1,5 @@ import { api, libraryFilterParams } from './subsonicClient'; +import { invalidateEntityUserRatingCaches } from './subsonicRatings'; import type { EntityRatingSupportLevel, StarredResults, @@ -38,11 +39,12 @@ export async function unstar(id: string, type: 'song' | 'album' | 'artist' = 'al export async function setRating(id: string, rating: number): Promise { await api('setRating.view', { id, rating }); // Cached song lists keyed by rating (e.g. Tracks → Highly Rated rail) become - // stale immediately. Lazy-import to keep the module dep direction - // subsonic ← navidromeBrowse and avoid pulling Tauri internals into shared - // type-only consumers. + // stale immediately. `invalidateEntityUserRatingCaches` is static-imported: + // mix paths already pull `subsonicRatings` (e.g. mixRatingFilter), so a + // dynamic import would not split chunks and only triggered INEFFECTIVE_DYNAMIC_IMPORT. + // Navidrome browse stays lazy to keep this module free of that dependency when unused. void import('./navidromeBrowse').then(m => m.ndInvalidateSongsCache()).catch(() => {}); - void import('./subsonicRatings').then(m => m.invalidateEntityUserRatingCaches(id)).catch(() => {}); + invalidateEntityUserRatingCaches(id); } /** diff --git a/vite.config.ts b/vite.config.ts index ae9536e8..faae8d83 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -24,6 +24,8 @@ export default defineConfig({ }, envPrefix: ["VITE_", "TAURI_ENV_*"], build: { + // Default 500 kB warns on every build; desktop bundles are often larger without being a problem. + chunkSizeWarningLimit: 1000, target: process.env.TAURI_ENV_PLATFORM === "windows" ? "chrome109" : "safari16", minify: !process.env.TAURI_ENV_DEBUG ? "esbuild" : false, sourcemap: !!process.env.TAURI_ENV_DEBUG,