71 lines
2.6 KiB
TypeScript
71 lines
2.6 KiB
TypeScript
import type {
|
|
AlbumListQuery,
|
|
SongListQuery,
|
|
AlbumDetailQuery,
|
|
AlbumArtistListQuery,
|
|
ArtistListQuery,
|
|
PlaylistListQuery,
|
|
PlaylistDetailQuery,
|
|
} from './types';
|
|
|
|
export const queryKeys = {
|
|
albumArtists: {
|
|
detail: (serverId: string, query?: AlbumArtistListQuery) => {
|
|
if (query) return [serverId, 'albumArtists', 'detail', query] as const;
|
|
return [serverId, 'albumArtists', 'detail'] as const;
|
|
},
|
|
list: (serverId: string, query?: AlbumArtistListQuery) => {
|
|
if (query) return [serverId, 'albumArtists', 'list', query] as const;
|
|
return [serverId, 'albumArtists', 'list'] as const;
|
|
},
|
|
root: (serverId: string) => [serverId, 'albumArtists'] as const,
|
|
},
|
|
albums: {
|
|
detail: (serverId: string, query?: AlbumDetailQuery) =>
|
|
[serverId, 'albums', 'detail', query] as const,
|
|
list: (serverId: string, query?: AlbumListQuery) => {
|
|
if (query) return [serverId, 'albums', 'list', query] as const;
|
|
return [serverId, 'albums', 'list'] as const;
|
|
},
|
|
root: (serverId: string) => [serverId, 'albums'],
|
|
serverRoot: (serverId: string) => [serverId, 'albums'],
|
|
songs: (serverId: string, query: SongListQuery) =>
|
|
[serverId, 'albums', 'songs', query] as const,
|
|
},
|
|
artists: {
|
|
list: (serverId: string, query?: ArtistListQuery) => {
|
|
if (query) return [serverId, 'artists', 'list', query] as const;
|
|
return [serverId, 'artists', 'list'] as const;
|
|
},
|
|
root: (serverId: string) => [serverId, 'artists'] as const,
|
|
},
|
|
genres: {
|
|
list: (serverId: string) => [serverId, 'genres', 'list'] as const,
|
|
root: (serverId: string) => [serverId, 'genres'] as const,
|
|
},
|
|
musicFolders: {
|
|
list: (serverId: string) => [serverId, 'musicFolders', 'list'] as const,
|
|
},
|
|
playlists: {
|
|
detail: (serverId: string, id?: string, query?: PlaylistDetailQuery) => {
|
|
if (query) return [serverId, 'playlists', 'detail', id, query] as const;
|
|
if (id) return [serverId, 'playlists', 'detail', id] as const;
|
|
return [serverId, 'playlists', 'detail'] as const;
|
|
},
|
|
list: (serverId: string, query?: PlaylistListQuery) => {
|
|
if (query) return [serverId, 'playlists', 'list', query] as const;
|
|
return [serverId, 'playlists', 'list'] as const;
|
|
},
|
|
root: (serverId: string) => [serverId, 'playlists'] as const,
|
|
},
|
|
server: {
|
|
root: (serverId: string) => [serverId] as const,
|
|
},
|
|
songs: {
|
|
list: (serverId: string, query?: SongListQuery) => {
|
|
if (query) return [serverId, 'songs', 'list', query] as const;
|
|
return [serverId, 'songs', 'list'] as const;
|
|
},
|
|
root: (serverId: string) => [serverId, 'songs'] as const,
|
|
},
|
|
};
|