const Store = require('electron-store')
const { v4: uuidv4 } = require('uuid');
const path = require('path')
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())