UNPKG

spotify-ts-wrapper

Version:

Spotify TypeScript wrapper.

216 lines (215 loc) 17.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.artistParser = artistParser; const getSpotifyId_1 = require("../Utils/getSpotifyId"); function artistParser(body) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27; const { data } = body; const artist = data === null || data === void 0 ? void 0 : data.artistUnion; const type = artist === null || artist === void 0 ? void 0 : artist.__typename; const id = artist === null || artist === void 0 ? void 0 : artist.id; const profile = artist === null || artist === void 0 ? void 0 : artist.profile; const biography = (_a = profile === null || profile === void 0 ? void 0 : profile.biography) === null || _a === void 0 ? void 0 : _a.text; const name = profile === null || profile === void 0 ? void 0 : profile.name; const externalLinks = (_c = (_b = profile === null || profile === void 0 ? void 0 : profile.externalLinks) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.map((item) => item); const pins = (_e = (_d = profile === null || profile === void 0 ? void 0 : profile.pinnedItem) === null || _d === void 0 ? void 0 : _d.itemV2) === null || _e === void 0 ? void 0 : _e.data; const stats = artist === null || artist === void 0 ? void 0 : artist.stats; const followers = stats === null || stats === void 0 ? void 0 : stats.followers; const listeners = stats === null || stats === void 0 ? void 0 : stats.monthlyListeners; const cities = (_g = (_f = stats === null || stats === void 0 ? void 0 : stats.topCities) === null || _f === void 0 ? void 0 : _f.items) === null || _g === void 0 ? void 0 : _g.map((item) => ({ city: item === null || item === void 0 ? void 0 : item.city, country: item === null || item === void 0 ? void 0 : item.country, listeners: item === null || item === void 0 ? void 0 : item.numberOfListeners, region: item === null || item === void 0 ? void 0 : item.region, })); const rank = stats === null || stats === void 0 ? void 0 : stats.worldRank; const visuals = artist === null || artist === void 0 ? void 0 : artist.visuals; const image = (_k = (_j = (_h = visuals === null || visuals === void 0 ? void 0 : visuals.avatarImage) === null || _h === void 0 ? void 0 : _h.sources) === null || _j === void 0 ? void 0 : _j.at(-1)) === null || _k === void 0 ? void 0 : _k.url; const header = (_o = (_m = (_l = visuals === null || visuals === void 0 ? void 0 : visuals.headerImage) === null || _l === void 0 ? void 0 : _l.sources) === null || _m === void 0 ? void 0 : _m.at(-1)) === null || _o === void 0 ? void 0 : _o.url; const gallery = (_r = (_q = (_p = visuals === null || visuals === void 0 ? void 0 : visuals.gallery) === null || _p === void 0 ? void 0 : _p.items[0]) === null || _q === void 0 ? void 0 : _q.sources) === null || _r === void 0 ? void 0 : _r.map((image) => image.url); const pinned = { name: pins === null || pins === void 0 ? void 0 : pins.name, type: pins === null || pins === void 0 ? void 0 : pins.__typename, artwork: (pins === null || pins === void 0 ? void 0 : pins.__typename) === "Playlist" ? (_u = (_t = (_s = pins === null || pins === void 0 ? void 0 : pins.images) === null || _s === void 0 ? void 0 : _s.items[0].sources) === null || _t === void 0 ? void 0 : _t.at(-1)) === null || _u === void 0 ? void 0 : _u.url : (pins === null || pins === void 0 ? void 0 : pins.__typename) === "Album" ? (_x = (_w = (_v = pins === null || pins === void 0 ? void 0 : pins.coverArt) === null || _v === void 0 ? void 0 : _v.sources) === null || _w === void 0 ? void 0 : _w.at(-1)) === null || _x === void 0 ? void 0 : _x.url : "", id: (_y = (0, getSpotifyId_1.extractSpotifyID)((pins === null || pins === void 0 ? void 0 : pins.uri) || "")) !== null && _y !== void 0 ? _y : "", }; const playlist = (_0 = (_z = profile === null || profile === void 0 ? void 0 : profile.playlistsV2) === null || _z === void 0 ? void 0 : _z.items) === null || _0 === void 0 ? void 0 : _0.map((item) => { var _a, _b, _c, _d, _e, _f, _g, _h; const data = item === null || item === void 0 ? void 0 : item.data; const type = data === null || data === void 0 ? void 0 : data.__typename; const title = data === null || data === void 0 ? void 0 : data.name; const description = data === null || data === void 0 ? void 0 : data.description; const images = (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.images) === null || _a === void 0 ? void 0 : _a.items[0]) === null || _b === void 0 ? void 0 : _b.sources) === null || _c === void 0 ? void 0 : _c.at(-1)) === null || _d === void 0 ? void 0 : _d.url; const id = (0, getSpotifyId_1.extractSpotifyID)(data === null || data === void 0 ? void 0 : data.uri); const owner = { name: (_f = (_e = data === null || data === void 0 ? void 0 : data.ownerV2) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.name, type: (_h = (_g = data === null || data === void 0 ? void 0 : data.ownerV2) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.__typename, }; return { type, description, images, title, owner, id, }; }); const discography = artist === null || artist === void 0 ? void 0 : artist.discography; const _latest = discography === null || discography === void 0 ? void 0 : discography.latest; const latest = { title: _latest === null || _latest === void 0 ? void 0 : _latest.name, id: _latest === null || _latest === void 0 ? void 0 : _latest.id, artwork: (_3 = (_2 = (_1 = _latest === null || _latest === void 0 ? void 0 : _latest.coverArt) === null || _1 === void 0 ? void 0 : _1.sources) === null || _2 === void 0 ? void 0 : _2.at(-1)) === null || _3 === void 0 ? void 0 : _3.url, label: _latest === null || _latest === void 0 ? void 0 : _latest.label, date: (_4 = _latest === null || _latest === void 0 ? void 0 : _latest.date) === null || _4 === void 0 ? void 0 : _4.year, copyright: (_6 = (_5 = _latest === null || _latest === void 0 ? void 0 : _latest.copyright) === null || _5 === void 0 ? void 0 : _5.items) === null || _6 === void 0 ? void 0 : _6.map((item) => item), type: _latest === null || _latest === void 0 ? void 0 : _latest.type, count: (_7 = _latest === null || _latest === void 0 ? void 0 : _latest.tracks) === null || _7 === void 0 ? void 0 : _7.totalCount, }; const albums = (_9 = (_8 = discography === null || discography === void 0 ? void 0 : discography.albums) === null || _8 === void 0 ? void 0 : _8.items) === null || _9 === void 0 ? void 0 : _9.map((item) => { var _a, _b; const releases = (_b = (_a = item === null || item === void 0 ? void 0 : item.releases) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.map((i) => fetchAlbum(i)); return releases; }); const popular = (_11 = (_10 = discography === null || discography === void 0 ? void 0 : discography.popularReleasesAlbums) === null || _10 === void 0 ? void 0 : _10.items) === null || _11 === void 0 ? void 0 : _11.map((item) => fetchAlbum(item)); const compilations = (_15 = (_14 = (_13 = (_12 = discography === null || discography === void 0 ? void 0 : discography.compilations) === null || _12 === void 0 ? void 0 : _12.items[0]) === null || _13 === void 0 ? void 0 : _13.releases) === null || _14 === void 0 ? void 0 : _14.items) === null || _15 === void 0 ? void 0 : _15.map((i) => fetchAlbum(i)); const singles = (_17 = (_16 = discography === null || discography === void 0 ? void 0 : discography.singles) === null || _16 === void 0 ? void 0 : _16.items) === null || _17 === void 0 ? void 0 : _17.map((i) => { var _a, _b; const releases = (_b = (_a = i === null || i === void 0 ? void 0 : i.releases) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.map((i) => fetchAlbum(i)); return releases; }); const tracks = (_19 = (_18 = discography === null || discography === void 0 ? void 0 : discography.topTracks) === null || _18 === void 0 ? void 0 : _18.items) === null || _19 === void 0 ? void 0 : _19.map((i) => { const track = i === null || i === void 0 ? void 0 : i.track; return fetchTrack(track); }); const releated = artist === null || artist === void 0 ? void 0 : artist.relatedContent; const appearsOn = (_21 = (_20 = releated === null || releated === void 0 ? void 0 : releated.appearsOn) === null || _20 === void 0 ? void 0 : _20.items) === null || _21 === void 0 ? void 0 : _21.map((i) => { var _a, _b, _c, _d, _e, _f, _g; const _latest = (_a = i === null || i === void 0 ? void 0 : i.releases) === null || _a === void 0 ? void 0 : _a.items[0]; return { title: _latest === null || _latest === void 0 ? void 0 : _latest.name, id: _latest === null || _latest === void 0 ? void 0 : _latest.id, type: _latest === null || _latest === void 0 ? void 0 : _latest.type, artwork: (_d = (_c = (_b = _latest === null || _latest === void 0 ? void 0 : _latest.coverArt) === null || _b === void 0 ? void 0 : _b.sources) === null || _c === void 0 ? void 0 : _c.at(-1)) === null || _d === void 0 ? void 0 : _d.url, date: (_e = _latest === null || _latest === void 0 ? void 0 : _latest.date) === null || _e === void 0 ? void 0 : _e.year, artists: (_g = (_f = _latest === null || _latest === void 0 ? void 0 : _latest.artists) === null || _f === void 0 ? void 0 : _f.items) === null || _g === void 0 ? void 0 : _g.map((a) => { var _a; return ({ name: (_a = a.profile) === null || _a === void 0 ? void 0 : _a.name, id: (0, getSpotifyId_1.extractSpotifyID)(a === null || a === void 0 ? void 0 : a.uri), }); }), }; }); const discover = (_23 = (_22 = releated === null || releated === void 0 ? void 0 : releated.discoveredOnV2) === null || _22 === void 0 ? void 0 : _22.items) === null || _23 === void 0 ? void 0 : _23.map((item) => { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p; return ({ title: (_a = item === null || item === void 0 ? void 0 : item.data) === null || _a === void 0 ? void 0 : _a.name, type: (_b = item === null || item === void 0 ? void 0 : item.data) === null || _b === void 0 ? void 0 : _b.__typename, description: (_c = item === null || item === void 0 ? void 0 : item.data) === null || _c === void 0 ? void 0 : _c.description, id: (_d = item === null || item === void 0 ? void 0 : item.data) === null || _d === void 0 ? void 0 : _d.id, image: (_h = (_g = (_f = (_e = item.data.images) === null || _e === void 0 ? void 0 : _e.items[0]) === null || _f === void 0 ? void 0 : _f.sources) === null || _g === void 0 ? void 0 : _g.at(-1)) === null || _h === void 0 ? void 0 : _h.url, owner: { type: (_l = (_k = (_j = item === null || item === void 0 ? void 0 : item.data) === null || _j === void 0 ? void 0 : _j.ownerV2) === null || _k === void 0 ? void 0 : _k.data) === null || _l === void 0 ? void 0 : _l.__typename, name: (_p = (_o = (_m = item === null || item === void 0 ? void 0 : item.data) === null || _m === void 0 ? void 0 : _m.ownerV2) === null || _o === void 0 ? void 0 : _o.data) === null || _p === void 0 ? void 0 : _p.name, }, }); }); const featuring = (_25 = (_24 = releated === null || releated === void 0 ? void 0 : releated.featuringV2) === null || _24 === void 0 ? void 0 : _24.items) === null || _25 === void 0 ? void 0 : _25.map((item) => { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p; return ({ title: (_a = item === null || item === void 0 ? void 0 : item.data) === null || _a === void 0 ? void 0 : _a.name, type: (_b = item === null || item === void 0 ? void 0 : item.data) === null || _b === void 0 ? void 0 : _b.__typename, description: (_c = item === null || item === void 0 ? void 0 : item.data) === null || _c === void 0 ? void 0 : _c.description, id: (_d = item === null || item === void 0 ? void 0 : item.data) === null || _d === void 0 ? void 0 : _d.id, image: (_h = (_g = (_f = (_e = item.data.images) === null || _e === void 0 ? void 0 : _e.items[0]) === null || _f === void 0 ? void 0 : _f.sources) === null || _g === void 0 ? void 0 : _g.at(-1)) === null || _h === void 0 ? void 0 : _h.url, owner: { type: (_l = (_k = (_j = item === null || item === void 0 ? void 0 : item.data) === null || _j === void 0 ? void 0 : _j.ownerV2) === null || _k === void 0 ? void 0 : _k.data) === null || _l === void 0 ? void 0 : _l.__typename, name: (_p = (_o = (_m = item === null || item === void 0 ? void 0 : item.data) === null || _m === void 0 ? void 0 : _m.ownerV2) === null || _o === void 0 ? void 0 : _o.data) === null || _p === void 0 ? void 0 : _p.name, }, }); }); const artists = (_27 = (_26 = releated === null || releated === void 0 ? void 0 : releated.relatedArtists) === null || _26 === void 0 ? void 0 : _26.items) === null || _27 === void 0 ? void 0 : _27.map((artist) => { var _a, _b, _c, _d, _e; return ({ id: artist === null || artist === void 0 ? void 0 : artist.id, name: (_a = artist === null || artist === void 0 ? void 0 : artist.profile) === null || _a === void 0 ? void 0 : _a.name, image: (_e = (_d = (_c = (_b = artist === null || artist === void 0 ? void 0 : artist.visuals) === null || _b === void 0 ? void 0 : _b.avatarImage) === null || _c === void 0 ? void 0 : _c.sources) === null || _d === void 0 ? void 0 : _d.at(-1)) === null || _e === void 0 ? void 0 : _e.url, }); }); const verified = profile === null || profile === void 0 ? void 0 : profile.verified; return { id, type, name, biography, externalLinks, cities, followers, listeners, image, rank, header, gallery, pinned, playlist, latest, albums, popular, compilations, singles, tracks, appearsOn, discover, featuring, verified, artists, }; } function fetchAlbum(_latest) { var _a, _b, _c, _d, _e, _f, _g; return { title: _latest === null || _latest === void 0 ? void 0 : _latest.name, id: _latest === null || _latest === void 0 ? void 0 : _latest.id, artwork: (_c = (_b = (_a = _latest === null || _latest === void 0 ? void 0 : _latest.coverArt) === null || _a === void 0 ? void 0 : _a.sources) === null || _b === void 0 ? void 0 : _b.at(-1)) === null || _c === void 0 ? void 0 : _c.url, label: _latest === null || _latest === void 0 ? void 0 : _latest.label, date: (_d = _latest === null || _latest === void 0 ? void 0 : _latest.date) === null || _d === void 0 ? void 0 : _d.year, copyright: (_f = (_e = _latest === null || _latest === void 0 ? void 0 : _latest.copyright) === null || _e === void 0 ? void 0 : _e.items) === null || _f === void 0 ? void 0 : _f.map((item) => item), type: _latest === null || _latest === void 0 ? void 0 : _latest.type, count: (_g = _latest === null || _latest === void 0 ? void 0 : _latest.tracks) === null || _g === void 0 ? void 0 : _g.totalCount, }; } function fetchTrack(track) { var _a, _b, _c, _d, _e, _f, _g, _h, _j; const title = track === null || track === void 0 ? void 0 : track.name; const album = { id: (0, getSpotifyId_1.extractSpotifyID)((_a = track === null || track === void 0 ? void 0 : track.albumOfTrack) === null || _a === void 0 ? void 0 : _a.uri), artwork: (_e = (_d = (_c = (_b = track === null || track === void 0 ? void 0 : track.albumOfTrack) === null || _b === void 0 ? void 0 : _b.coverArt) === null || _c === void 0 ? void 0 : _c.sources) === null || _d === void 0 ? void 0 : _d.at(-1)) === null || _e === void 0 ? void 0 : _e.url, }; const artists = (_g = (_f = track === null || track === void 0 ? void 0 : track.artists) === null || _f === void 0 ? void 0 : _f.items) === null || _g === void 0 ? void 0 : _g.map((a) => { var _a; return ({ name: (_a = a.profile) === null || _a === void 0 ? void 0 : _a.name, id: (0, getSpotifyId_1.extractSpotifyID)(a === null || a === void 0 ? void 0 : a.uri), }); }); const duration = (_h = track === null || track === void 0 ? void 0 : track.duration) === null || _h === void 0 ? void 0 : _h.totalMilliseconds; const id = track === null || track === void 0 ? void 0 : track.id; const plays = track === null || track === void 0 ? void 0 : track.playcount; const disc = track === null || track === void 0 ? void 0 : track.discNumber; const contentRating = (_j = track === null || track === void 0 ? void 0 : track.contentRating) === null || _j === void 0 ? void 0 : _j.label; return { title, album, artists, duration, id, plays, disc, contentRating, }; }