diff options
Diffstat (limited to 'data.js')
-rw-r--r-- | data.js | 71 |
1 files changed, 71 insertions, 0 deletions
@@ -0,0 +1,71 @@ +const fs = require('fs') +var exec = require('child_process').exec, child; + +// file stuff +let contentlist = new Map() +const dataFilePath = "data.json" +contentlist = readDataFromFile() +// require('./regcmd.js') + +//saved data is restored +function readDataFromFile() { + console.log('restoreing saved data...') + mapData = new Map() + let rawData = fs.readFileSync(dataFilePath); + var jsonData = JSON.parse(rawData); + for( key in jsonData ){ + mapData.set(key,jsonData[key]) + } + return mapData + console.log("done") + } + +//data is saved to json +function writeDataToFile(jsonData) { + let data = JSON.stringify(jsonData); + fs.writeFileSync(dataFilePath, data); + } + +function saveData() { + console.log('saving...') + let jsonObject = {}; + contentlist.forEach((value, key) => { + jsonObject[key] = value + }); + writeDataToFile(jsonObject) + regcmd(); + console.log('saved') + } + +function regcmd() { + child = exec('node regcmd.js {{args}}', + function (error, stdout, stderr) { + console.log('stdout: ' + stdout); + console.log('stderr: ' + stderr); + if (error !== null) { + console.log('exec error: ' + error); + } +}); +} + +this.add = function(key, value) { + contentlist.set(key, value); + saveData(); +} + +this.remove = function(key) { + contentlist.delete(key); + saveData(); +} + +this.get = function(key) { + return contentlist.get(key); +} + +this.getList = function() { + var list = []; + for (entry of contentlist.keys()) { + list.push({name: entry, value: entry}); + } + return list +} |