UNPKG

cpt-waffle-lotide

Version:
84 lines (83 loc) 2.45 kB
"use strict"; ; ; const library = { tracks: { t01: { id: "t01", name: "Code Monkey", artist: "Jonathan Coulton", album: "Thing a Week Three" }, t02: { id: "t02", name: "Model View Controller", artist: "James Dempsey", album: "WWDC 2003" }, t03: { id: "t03", name: "Four Thirty-Three", artist: "John Cage", album: "Woodstock 1952" } }, playlists: { p01: { id: "p01", name: "Coding Music", tracks: ["t01", "t02"] }, p02: { id: "p02", name: "Other Playlist", tracks: ["t03"] } }, printPlaylists: undefined, printTracks: undefined, printPlaylist: undefined, addTrackToPlaylist: undefined, addTrack: undefined, addPlaylist: undefined }; const printPlaylists = function () { const { playlists } = this; const playlistsKeys = Object.keys(library.playlists); playlistsKeys.forEach((id) => { console.log(`${id}: ${playlists[id].name} - ${playlists[id].tracks.length} tracks`); }); }; library.printPlaylists = printPlaylists; const printTracks = function () { const { tracks } = this; const tracksKeys = Object.keys(tracks); tracksKeys.forEach((item) => { const { id, name, artist } = library.tracks[item]; console.log(`${id}: ${name} by ${artist}`); }); }; const printPlaylist = function (playlistId) { const { playlists } = this; console.log(`${playlistId}: ${playlists[playlistId].name} ${playlists[playlistId].tracks.length} - tracks`); }; library.printPlaylist = printPlaylist; const addTrackToPlaylist = function (trackId, playlistId) { library.playlists[playlistId].tracks.push(trackId); }; library.addTrackToPlaylist = addTrackToPlaylist; const generateUid = function () { return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); }; const addTrack = function (name, artist, album) { const id = `t${generateUid()}`; const track = { id, name, artist, album }; library.tracks[id] = track; }; library.addTrack = addTrack; const addPlaylist = function (name) { const id = `p${generateUid()}`; const playlist = { id, name, tracks: [] }; library.playlists[id] = playlist; }; library.addPlaylist = addPlaylist;