Files
zulip-desktop/app/renderer/js/utils/config-util.js
2017-07-05 19:25:34 +08:00

48 lines
912 B
JavaScript

'use strict';
const process = require('process');
const JsonDB = require('node-json-db');
let instance = null;
let app = null;
/* To make the util runnable in both main and renderer process */
if (process.type === 'renderer') {
app = require('electron').remote.app;
} else {
app = require('electron').app;
}
class ConfigUtil {
constructor() {
if (instance) {
return instance;
} else {
instance = this;
}
this.db = new JsonDB(app.getPath('userData') + '/settings.json', true, true);
return instance;
}
getConfigItem(key, defaultValue = null) {
const value = this.db.getData('/')[key];
if (value === undefined) {
this.setConfigItem(key, defaultValue);
return defaultValue;
} else {
return value;
}
}
setConfigItem(key, value) {
this.db.push(`/${key}`, value, true);
}
removeConfigItem(key) {
this.db.delete(`/${key}`);
}
}
module.exports = new ConfigUtil();