E frontend reconciliation (2/2): align consumers to generated bindings; svelte-check clean
Reconcile the ~50 frontend files that consumed the old hand-written types against
the stricter generated bindings (141 -> 0 svelte-check errors):
- Nullable strictness: null-coalesce/guard at consumer sites; widen shared helpers
(CachedImage.tag, ticksToSeconds, formatDuration, getSessionIcon, session store
send*/transferToRemote) to accept null.
- Field-name fixes exposed by codegen: userData.played -> isPlayed; remote
NowPlayingItem uses album (not albumName); ArtistItem id/name.
- player.ts: normalize remote NowPlayingItem -> MediaItem in mergedMedia.
- ArtistItem now serializes camelCase (PascalCase alias retained for Jellyfin
deserialize); update its serialize test.
- Update downloads.test.ts to the bundled { request } shape; complete the
sessions.test.ts NowPlayingItem mock.
Frontend: svelte-check 0 errors, vitest 448 passing. Backend: 387 passing.
This commit is contained in:
@@ -40,8 +40,15 @@ describe("sessions store", () => {
|
||||
nowPlayingItem: {
|
||||
id: "item-1",
|
||||
name: "Test Song",
|
||||
type: "Audio",
|
||||
serverId: "server-1",
|
||||
Type: "Audio",
|
||||
runTimeTicks: null,
|
||||
album: null,
|
||||
albumId: null,
|
||||
albumArtist: null,
|
||||
artists: null,
|
||||
imageTags: null,
|
||||
primaryImageTag: null,
|
||||
albumPrimaryImageTag: null,
|
||||
},
|
||||
playableMediaTypes: ["Audio", "Video"],
|
||||
supportedCommands: ["PlayPause", "Stop", "Seek", "NextTrack", "PreviousTrack"],
|
||||
|
||||
Reference in New Issue
Block a user