add musicbrainz artist query

This commit is contained in:
jeffvli
2026-01-07 21:20:40 -08:00
parent 2869aab728
commit 4b509951a5
2 changed files with 37 additions and 0 deletions
+4
View File
@@ -270,6 +270,10 @@ export const queryKeys: Record<
},
root: (serverId: string) => [serverId, 'genres'] as const,
},
musicbrainz: {
artist: (mbzArtistId: string) => ['musicbrainz', 'artist', mbzArtistId] as const,
root: () => ['musicbrainz'] as const,
},
musicFolders: {
list: (serverId: string) => [serverId, 'musicFolders', 'list'] as const,
},
@@ -0,0 +1,33 @@
import { queryOptions } from '@tanstack/react-query';
import { MusicBrainzApi } from 'musicbrainz-api';
import packageJson from '../../../../../package.json';
import { queryKeys } from '/@/renderer/api/query-keys';
export const musicbrainzApi = new MusicBrainzApi({
appContactInfo: packageJson.homepage,
appName: packageJson.name,
appVersion: packageJson.version,
});
// Cache all musicbrainz api results for 5 minutes
const CACHE_TIME = 1000 * 60 * 5;
export const musicbrainzQueries = {
artist: (args: { mbzArtistId: string }) => {
return queryOptions({
gcTime: CACHE_TIME,
queryFn: () =>
musicbrainzApi.lookup('artist', args.mbzArtistId, [
'releases',
'recordings',
'release-groups',
'works',
'media',
]),
queryKey: queryKeys.musicbrainz.artist(args.mbzArtistId),
staleTime: CACHE_TIME,
});
},
};