Skip to content

Commit

Permalink
leveldb: IPC in settings from main to renderer.
Browse files Browse the repository at this point in the history
  • Loading branch information
kanishk98 committed Aug 17, 2019
1 parent 31dc742 commit a9d19f9
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions app/main/datastore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class DataStore {
constructor() {
this.settings = {};
this.settingsDB = LevelDB.settings.db;
this.loadSettings();
}

loadSettings(): void {
Expand Down
7 changes: 7 additions & 0 deletions app/main/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import BadgeSettings = require('../renderer/js/pages/preference/badge-settings')
import ConfigUtil = require('../renderer/js/utils/config-util');
import ProxyUtil = require('../renderer/js/utils/proxy-util');
import leveldb = require('./leveldb');
import DataStore = require('./datastore');

interface PatchedGlobal extends NodeJS.Global {
mainWindowState: windowStateKeeper.State;
Expand Down Expand Up @@ -365,12 +366,18 @@ app.on('ready', () => {
});

ipcMain.on('leveldb-set-item', (_event: Electron.IpcMessageEvent, key: string, value: any) => {
DataStore.settings[key] = value;
leveldb.settings.setItem(key, value);
});

ipcMain.on('leveldb-delete-item', (_event: Electron.IpcMessageEvent, key: string) => {
delete DataStore.settings.key;
leveldb.settings.deleteItem(key);
});

ipcMain.on('get-settings', (_event: Electron.IpcMessageEvent) => {
_event.returnValue = DataStore.settings;
});
});

app.on('before-quit', () => {
Expand Down
9 changes: 9 additions & 0 deletions app/renderer/js/utils/config-util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ class ConfigUtil {

constructor() {
this.settings = {};
this.reloadDB();
}

reloadDB(): void {
if (process.type === 'renderer') {
LevelDBUtil.initConfigUtil().then(settings => {
this.settings = settings;
});
}
}

getConfigItem(key: string, defaultValue: any = null): any {
Expand Down
10 changes: 10 additions & 0 deletions app/renderer/js/utils/leveldb-util.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
import electron = require('electron');
let LevelDB: any = null;
let ipcRenderer: Electron.IpcRenderer = null;
if (process.type === 'browser') {
LevelDB = require('../../../main/leveldb');
} else {
ipcRenderer = electron.ipcRenderer;
}

class LevelDBUtil {
initConfigUtil(): Promise<any> {
return new Promise(resolve => {
const settings = ipcRenderer.sendSync('get-settings');
resolve(settings);
});
}

setConfigItem(key: string, value: any): void {
if (process.type === 'renderer') {
const { ipcRenderer } = electron;
Expand Down

0 comments on commit a9d19f9

Please sign in to comment.