Gracefully shut down database operations before app exit

This commit is contained in:
Scott Nonnenberg 2018-11-05 11:06:12 -08:00
parent 2822f4ce40
commit 6300256a3e
5 changed files with 161 additions and 11 deletions

View file

@ -151,6 +151,25 @@ ipc.on('delete-all-data', () => {
}
});
ipc.on('get-ready-for-shutdown', async () => {
const { shutdown } = window.Events;
if (!shutdown) {
window.log.error('preload shutdown handler: shutdown method not found');
ipc.send('now-ready-for-shutdown');
return;
}
try {
await shutdown();
ipc.send('now-ready-for-shutdown');
} catch (error) {
ipc.send(
'now-ready-for-shutdown',
error && error.stack ? error.stack : error
);
}
});
function installGetter(name, functionName) {
ipc.on(`get-${name}`, async () => {
const getFn = window.Events[functionName];
@ -159,7 +178,10 @@ function installGetter(name, functionName) {
try {
ipc.send(`get-success-${name}`, null, await getFn());
} catch (error) {
ipc.send(`get-success-${name}`, error);
ipc.send(
`get-success-${name}`,
error && error.stack ? error.stack : error
);
}
}
});