import type { Market, Album, Albums, MaxInt, Page, SimplifiedTrack } from '../types.js'; import EndpointsBase from './EndpointsBase.js'; export default class AlbumsEndpoints extends EndpointsBase { public async get(id: string, market?: Market): Promise; public async get(ids: string[], market?: Market): Promise; public async get(idOrIds: string | string[], market?: Market) { if (typeof idOrIds === 'string') { const params = this.paramsFor({ market }); const album = await this.getRequest(`albums/${idOrIds}${params}`); return album; } const params = this.paramsFor({ ids: idOrIds, market }); // TODO: only returns top 20, validate here const response = await this.getRequest(`albums${params}`); return response.albums; } public tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number) { const params = this.paramsFor({ market, limit, offset }); return this.getRequest>(`albums/${albumId}/tracks${params}`); } }