feat(ipc): typed bindings for library catalog/genre browse commands

First vertical slice of the tauri-specta rollout: annotate two psysonic-library
browse-metadata commands (library_get_catalog_year_bounds,
library_get_genre_album_counts) with #[specta::specta] and derive specta::Type on
their DTOs (CatalogYearBoundsDto, GenreAlbumCountDto), then add them to
collect_commands!. bindings.ts now carries their typed signatures + DTO shapes
(serde camelCase carried through). Non-breaking: generate_handler! stays the live
handler and nothing imports the bindings yet.

Both DTOs are i64-free (i32/u32/String), so no BigInt handling is needed here —
that convention is decided when the first i64 DTO is annotated. Generated
src/generated is excluded from eslint (its runtime helper uses `any`); tsc still
type-checks bindings.ts.
This commit is contained in:
Psychotoxical
2026-07-01 13:52:39 +02:00
parent c976b79c7d
commit 751ad35365
7 changed files with 41 additions and 4 deletions
+1
View File
@@ -4261,6 +4261,7 @@ dependencies = [
"rusqlite",
"serde",
"serde_json",
"specta",
"tauri",
"tokio",
"wiremock",