Add browse functionality to NodeBrainz types

pull/3800/merge^2
Anatole Sot 4 months ago
parent 60b9fbef00
commit 4d4c6d7006

@ -27,6 +27,19 @@ declare module 'nodebrainz' {
export interface WorkSearchResponse extends RawSearchResponse {
works: Work[];
}
export interface BrowseRequestParams {
limit?: number;
offset?: number;
artist?: string;
release?: string;
recording?: string;
'release-group'?: string;
work?: string;
// or anything else
[key: string]: string | number | undefined;
}
export default class BaseNodeBrainz {
constructor(options: {
userAgent: string;
@ -72,5 +85,38 @@ declare module 'nodebrainz' {
| WorkSearchResponse
) => void
): Promise<Artist[] | Release[] | Recording[] | Group[] | Work[]>;
browse(
type: string,
data: BrowseRequestParams,
callback: (
err: Error,
data:
| {
'release-group-count': number;
'release-group-offset': number;
'release-groups': Group[];
}
| {
'release-count': number;
'release-offset': number;
releases: Release[];
}
| {
'recording-count': number;
'recording-offset': number;
recordings: Recording[];
}
| {
'work-count': number;
'work-offset': number;
works: Work[];
}
| {
'artist-count': number;
'artist-offset': number;
artists: Artist[];
}
) => void
): Promise<Artist[] | Release[] | Recording[] | Group[] | Work[]>;
}
}

Loading…
Cancel
Save