converse-desktop/preload.js

60 lines
1.6 KiB
JavaScript

const {ipcRenderer, contextBridge} = require('electron');
const keytar = require('keytar');
const trayService = require(__dirname + '/modules/tray-service');
contextBridge.exposeInMainWorld('api', {
send(channel, ...data) {
return ipcRenderer.send(channel, ...data);
},
receive(channel, cb) {
ipcRenderer.on(channel, (event, ...args) => cb(...args));
},
reload() {
ipcRenderer.send('reload')
},
getApplicationVersion() {
return ipcRenderer.invoke('getApplicationVersion');
},
getElectronVersion() {
return ipcRenderer.invoke('getElectronVersion');
},
electronSettings: {
hasSync(setting) {
return ipcRenderer.sendSync('electron-settings', 'hasSync', setting)
},
setSync(setting, value) {
ipcRenderer.send('electron-settings', 'setSync', setting, value)
},
unsetSync(setting) {
ipcRenderer.send('electron-settings', 'unsetSync', setting)
},
getSync(setting) {
return ipcRenderer.sendSync('electron-settings', 'getSync', setting);
}
},
trayService: {
showEnvelope() {
trayService.showEnvelope();
},
hideEnvelope() {
trayService.hideEnvelope();
}
},
keytar: {
getPassword(service, login) {
return keytar.getPassword(service, login);
},
setPassword(service, login, password) {
return keytar.setPassword(service, login, password);
},
deletePassword(service, login) {
return keytar.deletePassword(service, login);
}
}
});