Skip to content

Commit a9d19f9

Browse files
committed
leveldb: IPC in settings from main to renderer.
1 parent 31dc742 commit a9d19f9

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

app/main/datastore.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class DataStore {
1414
constructor() {
1515
this.settings = {};
1616
this.settingsDB = LevelDB.settings.db;
17+
this.loadSettings();
1718
}
1819

1920
loadSettings(): void {

app/main/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import BadgeSettings = require('../renderer/js/pages/preference/badge-settings')
1515
import ConfigUtil = require('../renderer/js/utils/config-util');
1616
import ProxyUtil = require('../renderer/js/utils/proxy-util');
1717
import leveldb = require('./leveldb');
18+
import DataStore = require('./datastore');
1819

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

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

371373
ipcMain.on('leveldb-delete-item', (_event: Electron.IpcMessageEvent, key: string) => {
374+
delete DataStore.settings.key;
372375
leveldb.settings.deleteItem(key);
373376
});
377+
378+
ipcMain.on('get-settings', (_event: Electron.IpcMessageEvent) => {
379+
_event.returnValue = DataStore.settings;
380+
});
374381
});
375382

376383
app.on('before-quit', () => {

app/renderer/js/utils/config-util.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ class ConfigUtil {
77

88
constructor() {
99
this.settings = {};
10+
this.reloadDB();
11+
}
12+
13+
reloadDB(): void {
14+
if (process.type === 'renderer') {
15+
LevelDBUtil.initConfigUtil().then(settings => {
16+
this.settings = settings;
17+
});
18+
}
1019
}
1120

1221
getConfigItem(key: string, defaultValue: any = null): any {

app/renderer/js/utils/leveldb-util.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
import electron = require('electron');
22
let LevelDB: any = null;
3+
let ipcRenderer: Electron.IpcRenderer = null;
34
if (process.type === 'browser') {
45
LevelDB = require('../../../main/leveldb');
6+
} else {
7+
ipcRenderer = electron.ipcRenderer;
58
}
69

710
class LevelDBUtil {
11+
initConfigUtil(): Promise<any> {
12+
return new Promise(resolve => {
13+
const settings = ipcRenderer.sendSync('get-settings');
14+
resolve(settings);
15+
});
16+
}
17+
818
setConfigItem(key: string, value: any): void {
919
if (process.type === 'renderer') {
1020
const { ipcRenderer } = electron;

0 commit comments

Comments
 (0)