36 lines
791 B
JavaScript
36 lines
791 B
JavaScript
|
const fs = require('fs-extra');
|
||
|
const path = require('path');
|
||
|
const { app } = require('electron');
|
||
|
const userDataPath = app.getPath('userData');
|
||
|
const CONFIG_FILE_NAME = 'timesheet-config.json';
|
||
|
const configPath = path.join(userDataPath, CONFIG_FILE_NAME);
|
||
|
|
||
|
function initializeConfig() {
|
||
|
const initial = require('./config.json');
|
||
|
saveConfig(initial);
|
||
|
}
|
||
|
|
||
|
function saveConfig(config) {
|
||
|
console.log('Saving: ' + JSON.stringify(config));
|
||
|
fs.writeJSONSync(configPath, config, {
|
||
|
encoding: 'utf-8',
|
||
|
spaces: 2
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function getConfig() {
|
||
|
if (!fs.existsSync(configPath)) {
|
||
|
initializeConfig();
|
||
|
}
|
||
|
const options = fs.readJSONSync(configPath, 'utf-8');
|
||
|
return options;
|
||
|
}
|
||
|
|
||
|
function setConfig(config) {
|
||
|
saveConfig(config);
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
getConfig,
|
||
|
setConfig
|
||
|
};
|