class DataStore extends Store { constructor(settings){ super(settings) this.tracks = this.get('tracks') || [] }
saveTracks(){ this.set('tracks', this.tracks) return this }
getTracks(){ return this.get('tracks') || [] }
addTracks(tracks){ const trackWithProps = tracks.map((track)=>{ return { id: uuidv4(), path:track, fileName: path.basename(track) } }).filter( track => { const currentTracksPath = this.getTracks().map(track => track.path) return currentTracksPath.indexOf(track.path) < 0 })
this.tracks = [...this.tracks,...trackWithProps] return this.saveTracks() }
deleteTrack(deletedId){ this.tracks = this.tracks.filter(item => item.id !== deletedId) return this.saveTracks() }
}
module.exports = DataStore ---------- const DataStore = require('./renderer/MusicDataStore'); const myStore = new DataStore({ 'name': 'Music Data' }) mainWindow.send('getTracks',myStore.getTracks())