mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-22 15:37:02 +00:00
44 lines
No EOL
1.1 KiB
JavaScript
44 lines
No EOL
1.1 KiB
JavaScript
const WAIT_FOR_WIN_TIMEOUT_DURATION = 4000;
|
|
const ERROR_EV = 'ELECTRON_ERROR';
|
|
const mainWinMod = require('./main-window');
|
|
|
|
module.exports = (e = 'UNDEFINED ERROR', additionalLogInfo) => {
|
|
const errObj = new Error(e);
|
|
|
|
if (_isReadyForFrontEndError()) {
|
|
_handleError(e, additionalLogInfo, errObj);
|
|
} else {
|
|
// try again a little later, when window might be ready
|
|
setTimeout(() => {
|
|
_handleError(e, additionalLogInfo, errObj);
|
|
}, WAIT_FOR_WIN_TIMEOUT_DURATION);
|
|
}
|
|
};
|
|
|
|
function _isReadyForFrontEndError() {
|
|
const mainWin = mainWinMod.getWin();
|
|
const isAppReady = mainWinMod.getIsAppReady();
|
|
return mainWin && mainWin.webContents && isAppReady;
|
|
}
|
|
|
|
function _handleError(e, additionalLogInfo, errObj) {
|
|
const mainWin = mainWinMod.getWin();
|
|
const stack = errObj.stack;
|
|
|
|
console.error('ERR', e);
|
|
console.log(stack);
|
|
|
|
if (additionalLogInfo) {
|
|
console.log('Additional Error info: ', additionalLogInfo);
|
|
}
|
|
|
|
if (_isReadyForFrontEndError()) {
|
|
mainWin.webContents.send(ERROR_EV, {
|
|
error: e,
|
|
stack: stack,
|
|
});
|
|
} else {
|
|
console.error('ERR', 'Frontend not loaded');
|
|
throw errObj;
|
|
}
|
|
} |