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,