feature: use async/await instead of promises

This commit is contained in:
georgelima 2018-12-04 00:34:41 -02:00
parent 79cc2899d0
commit f256dfa568
2 changed files with 39 additions and 36 deletions

View File

@ -5,6 +5,7 @@ import processExists from 'process-exists';
/* eslint-disable-next-line import/no-extraneous-dependencies */
import isDev from 'electron-is-dev';
import type { ChildProcess } from 'child_process';
import eres from 'eres';
import getBinariesPath from './get-binaries-path';
import getOsFolder from './get-os-folder';
@ -14,17 +15,25 @@ import log from './logger';
const getDaemonOptions = () => (isDev ? ['-daemon', '-testnet'] : ['-daemon']);
const runDaemon: () => Promise<?ChildProcess> = () => new Promise((resolve, reject) => {
const runDaemon: () => Promise<?ChildProcess> = () => new Promise(async (resolve, reject) => {
const processName = path.join(getBinariesPath(), getOsFolder(), getDaemonName());
fetchParams()
.then(() => {
const [err] = await eres(fetchParams());
if (err) {
log('Something went wrong fetching params: ', err);
return reject(new Error(err));
}
log('Fetch Params finished!');
processExists(processName).then((isRunning) => {
const [, isRunning] = await eres(processExists(processName));
if (isRunning) {
log('Already is running!');
resolve();
} else {
return resolve();
}
const childProcess = cp.spawn(processName, getDaemonOptions());
childProcess.stdout.on('data', (data) => {
@ -38,12 +47,6 @@ const runDaemon: () => Promise<?ChildProcess> = () => new Promise((resolve, reje
});
childProcess.on('error', reject);
}
});
})
.catch((err) => {
log('Something went wrong fetching params: ', err);
});
});
export default runDaemon;

View File

@ -1,4 +1,6 @@
// @flow
import '@babel/polyfill';
import path from 'path';
/* eslint-disable import/no-extraneous-dependencies */
@ -7,6 +9,7 @@ import { autoUpdater } from 'electron-updater';
import isDev from 'electron-is-dev';
/* eslint-enable import/no-extraneous-dependencies */
import type { BrowserWindow as BrowserWindowType } from 'electron';
import eres from 'eres';
import { registerDebugShortcut } from '../utils/debug-shortcut';
import runDaemon from './daemon/zcashd-child-process';
import zcashLog from './daemon/logger';
@ -63,15 +66,14 @@ const createWindow = () => {
exports.app = app;
};
app.on('ready', () => {
/* eslint-disable-next-line consistent-return */
app.on('ready', async () => {
createWindow();
runDaemon()
.then((proc) => {
if (proc) {
const [err, proc] = await eres(runDaemon());
if (err || !proc) return zcashLog(err);
zcashDaemon = proc;
}
})
.catch(zcashLog);
});
app.on('activate', () => {
if (mainWindow === null) createWindow();
@ -80,7 +82,5 @@ app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit();
});
app.on('before-quit', () => {
if (zcashDaemon) {
zcashDaemon.kill('SIGINT');
}
if (zcashDaemon) zcashDaemon.kill('SIGINT');
});