interface MusicArtist {
id: number;
name: string;
artUrl?: string;
}
id: number
name: string
artUrl: string | undefined
interface MusicAlbum {
id: number;
name: string;
trackCount?: number;
artUrl?: string;
artistId?: number;
}
id: number
name: string
trackCount: number | undefined
artUrl: string | undefined
artistId: number | undefined
interface MusicSong {
id: number;
name: string;
track?: number;
duration?: number;
genre?: string;
artistId?: number;
albumId?: number;
}
id: number
name: string
track: number | undefined
duration: number | undefined
genre: string | undefined
artistId: number | undefined
albumId: number | undefined
interface MusicSource {
name: string;
getArtist: (options: MusicArtistQuery) => Promise<MusicResult>;
getAlbum: (options: MusicAlbumQuery) => Promise<MusicResult>;
getSong: (options: MusicSongQuery) => Promise<MusicResult>;
}
name: string
getArtist: (options: MusicArtistQuery) => Promise<MusicResult>
getAlbum: (options: MusicAlbumQuery) => Promise<MusicResult>
getSong: (options: MusicSongQuery) => Promise<MusicResult>
interface MusicQuery {
query: string;
sources: MusicSource[];
}
query: string
sources: MusicSource[]
interface MusicArtistQuery extends MusicQuery {
includeAlbums?: boolean;
includeSongs?: boolean;
artistLimit?: number;
albumLimit?: number;
songLimit?: number;
}
includeAlbums: boolean | undefined
includeSongs: boolean | undefined
artistLimit: number | undefined
albumLimit: number | undefined
songLimit: number | undefined
interface MusicAlbumQuery extends MusicQuery {
includeArtist?: boolean;
includeSongs?: boolean;
albumLimit?: number;
songLimit?: number;
}
includeArtist: boolean | undefined
includeSongs: boolean | undefined
albumLimit: number | undefined
songLimit: number | undefined
interface MusicSongQuery extends MusicQuery {
includeArtist?: boolean;
includeAlbum?: boolean;
songLimit?: number;
}
includeArtist: boolean | undefined
includeAlbum: boolean | undefined
songLimit: number | undefined