Files
yellowjacket/frontend/wailsjs/go/library/Library.js
T
logan 9e0e4d5bb8 perf(library): resolve album and genre file paths in one query
"Play this artist" awaited `GetAlbumTracks` inside a for loop — 13
sequential round trips for a 12-album artist — and every one of the
four sites doing that asked for whole track rows to read `FilePath`
off them. Five genres cost 6 MB across the IPC.

`GetFilePathsByAlbums(ids, libraryID)` and `GetFilePathsByGenres(names,
libraryID)` answer once and carry only the paths. Measured at 50 000
tracks: an artist 13 calls / 74.2 kB -> 2 / 19.2 kB, twenty albums
20 / 117.5 kB / 7.8 ms -> 1 / 26.0 kB / 1.7 ms, five genres
5 / 6 014 kB / 213 ms -> 1 / 1 291 kB / 32.6 ms, with the returned path
lists identical.

They return the paths grouped by album id or genre name rather than
flattened, because the caller owns the order — an album list is sorted
by name, not by id, and a flattened result would silently reorder a
queue — and because the album drag cache stores them per album. A
libraryID of 0 means "every library", matching an unset filter.
2026-08-12 01:18:17 -04:00

188 lines
5.2 KiB
JavaScript
Executable File

// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export function AcquirePipelineLock() {
return window['go']['library']['Library']['AcquirePipelineLock']();
}
export function AddLibrary(arg1) {
return window['go']['library']['Library']['AddLibrary'](arg1);
}
export function CancelAllScans() {
return window['go']['library']['Library']['CancelAllScans']();
}
export function CancelCurrentScan() {
return window['go']['library']['Library']['CancelCurrentScan']();
}
export function CancelScan() {
return window['go']['library']['Library']['CancelScan']();
}
export function FullRescan() {
return window['go']['library']['Library']['FullRescan']();
}
export function GetAlbumTracks(arg1) {
return window['go']['library']['Library']['GetAlbumTracks'](arg1);
}
export function GetAlbumTracksByLibrary(arg1, arg2) {
return window['go']['library']['Library']['GetAlbumTracksByLibrary'](arg1, arg2);
}
export function GetAlbumsByArtist(arg1) {
return window['go']['library']['Library']['GetAlbumsByArtist'](arg1);
}
export function GetAlbumsByArtistByLibrary(arg1, arg2) {
return window['go']['library']['Library']['GetAlbumsByArtistByLibrary'](arg1, arg2);
}
export function GetAllAlbums() {
return window['go']['library']['Library']['GetAllAlbums']();
}
export function GetAllAlbumsByLibrary(arg1) {
return window['go']['library']['Library']['GetAllAlbumsByLibrary'](arg1);
}
export function GetAllArtists() {
return window['go']['library']['Library']['GetAllArtists']();
}
export function GetAllArtistsByLibrary(arg1) {
return window['go']['library']['Library']['GetAllArtistsByLibrary'](arg1);
}
export function GetAllGenresWithCounts() {
return window['go']['library']['Library']['GetAllGenresWithCounts']();
}
export function GetAllGenresWithCountsByLibrary(arg1) {
return window['go']['library']['Library']['GetAllGenresWithCountsByLibrary'](arg1);
}
export function GetAllLibrariesWithTrackCounts() {
return window['go']['library']['Library']['GetAllLibrariesWithTrackCounts']();
}
export function GetAllTracks() {
return window['go']['library']['Library']['GetAllTracks']();
}
export function GetAllTracksByLibrary(arg1) {
return window['go']['library']['Library']['GetAllTracksByLibrary'](arg1);
}
export function GetFilePathsByAlbums(arg1, arg2) {
return window['go']['library']['Library']['GetFilePathsByAlbums'](arg1, arg2);
}
export function GetFilePathsByGenres(arg1, arg2) {
return window['go']['library']['Library']['GetFilePathsByGenres'](arg1, arg2);
}
export function GetRemovalImpact(arg1) {
return window['go']['library']['Library']['GetRemovalImpact'](arg1);
}
export function GetScanQueueLength() {
return window['go']['library']['Library']['GetScanQueueLength']();
}
export function GetTrackMBIDs(arg1) {
return window['go']['library']['Library']['GetTrackMBIDs'](arg1);
}
export function GetTracksByGenre(arg1) {
return window['go']['library']['Library']['GetTracksByGenre'](arg1);
}
export function GetTracksByGenreByLibrary(arg1, arg2) {
return window['go']['library']['Library']['GetTracksByGenreByLibrary'](arg1, arg2);
}
export function IsScanActive() {
return window['go']['library']['Library']['IsScanActive']();
}
export function IsScanPaused() {
return window['go']['library']['Library']['IsScanPaused']();
}
export function LibraryPath(arg1) {
return window['go']['library']['Library']['LibraryPath'](arg1);
}
export function PauseScan() {
return window['go']['library']['Library']['PauseScan']();
}
export function QueuedLibraryNames() {
return window['go']['library']['Library']['QueuedLibraryNames']();
}
export function ReleasePipelineLock() {
return window['go']['library']['Library']['ReleasePipelineLock']();
}
export function RemoveLibrary(arg1) {
return window['go']['library']['Library']['RemoveLibrary'](arg1);
}
export function RenameLibrary(arg1, arg2) {
return window['go']['library']['Library']['RenameLibrary'](arg1, arg2);
}
export function RestorePausedScans() {
return window['go']['library']['Library']['RestorePausedScans']();
}
export function ResumeScan() {
return window['go']['library']['Library']['ResumeScan']();
}
export function ScanAllLibraries() {
return window['go']['library']['Library']['ScanAllLibraries']();
}
export function ScanLibrary(arg1) {
return window['go']['library']['Library']['ScanLibrary'](arg1);
}
export function SearchTracks(arg1) {
return window['go']['library']['Library']['SearchTracks'](arg1);
}
export function SearchTracksByLibrary(arg1, arg2) {
return window['go']['library']['Library']['SearchTracksByLibrary'](arg1, arg2);
}
export function SetContext(arg1) {
return window['go']['library']['Library']['SetContext'](arg1);
}
export function SetJobRegistry(arg1) {
return window['go']['library']['Library']['SetJobRegistry'](arg1);
}
export function SetRemovalHooks(arg1) {
return window['go']['library']['Library']['SetRemovalHooks'](arg1);
}
export function SetRescanHooks(arg1) {
return window['go']['library']['Library']['SetRescanHooks'](arg1);
}
export function SetScanHooks(arg1) {
return window['go']['library']['Library']['SetScanHooks'](arg1);
}
export function SoftScanAllLibraries() {
return window['go']['library']['Library']['SoftScanAllLibraries']();
}