UNPKG

graphbrainz

Version:

A GraphQL schema, Express server, and middleware for querying the MusicBrainz.

65 lines (63 loc) 1.53 kB
const imageResolvers = { imageID: (image) => image.id, url: (image, args) => { return args.size === 'PREVIEW' ? image.url.replace('/fanart/', '/preview/') : image.url; }, likeCount: (image) => image.likes, }; export default { FanArtImage: { ...imageResolvers, }, FanArtDiscImage: { ...imageResolvers, discNumber: (image) => image.disc, }, FanArtLabelImage: { ...imageResolvers, color: (image) => image.colour, }, FanArtArtist: { backgrounds: (artist) => { return artist.artistbackground || []; }, thumbnails: (artist) => { return artist.artistthumb || []; }, logos: (artist) => { return artist.musiclogo || []; }, logosHD: (artist) => { return artist.hdmusiclogo || []; }, banners: (artist) => { return artist.musicbanner || []; }, }, FanArtLabel: { logos: (label) => label.musiclabel || [], }, FanArtAlbum: { albumCovers: (album) => album.albumcover || [], discImages: (album) => album.cdart || [], }, Artist: { fanArt: (artist, args, context) => { return context.loaders.fanArt.load(['artist', artist.id]); }, }, Label: { fanArt: (label, args, context) => { return context.loaders.fanArt.load(['label', label.id]); }, }, ReleaseGroup: { fanArt: (releaseGroup, args, context) => { return context.loaders.fanArt .load(['release-group', releaseGroup.id]) .then((artist) => artist.albums[releaseGroup.id]); }, }, };