refactor: escalate severe to electron

This commit is contained in:
Carlos Valente
2024-06-10 07:54:31 +02:00
committed by Carlos Valente
parent d41cd78f2e
commit 8742b790f3
3 changed files with 21 additions and 7 deletions
+6 -4
View File
@@ -41,7 +41,7 @@ async function startBackend() {
await initAssets();
const result = await startServer();
const result = await startServer(escalateError);
loaded = result.message;
await startIntegrations();
@@ -86,6 +86,11 @@ function askToQuit() {
win.send('user-request-shutdown');
}
function escalateError(error) {
dialog.showErrorBox('An unrecoverable error occurred', error);
app.quit();
}
// Ensure there isn't another instance of the app running already
const lock = app.requestSingleInstanceLock();
if (!lock) {
@@ -213,11 +218,8 @@ app.whenReady().then(() => {
const trayMenuTemplate = getTrayMenu(bringToFront, askToQuit);
const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate);
tray.setContextMenu(trayContextMenu);
});
// unregister shortcuts before quitting
app.once('will-quit', () => {
globalShortcut.unregisterAll();
+6 -2
View File
@@ -153,9 +153,10 @@ export const initAssets = async () => {
/**
* Starts servers
* @return {Promise<string>}
*/
export const startServer = async () => {
export const startServer = async (
escalateErrorFn?: (error: string) => void,
): Promise<{ message: string; serverPort: number }> => {
checkStart(OntimeStartOrder.InitServer);
const { serverPort } = DataProvider.getSettings();
@@ -185,6 +186,9 @@ export const startServer = async () => {
},
});
// initialise logging service, escalateErrorFn is only exists in electron
logger.init(escalateErrorFn);
// initialise rundown service
const persistedRundown = DataProvider.getRundown();
const persistedCustomFields = DataProvider.getCustomFields();
+9 -1
View File
@@ -8,19 +8,26 @@ import { consoleRed } from '../utils/console.js';
class Logger {
private queue: Log[];
private escalateErrorFn: (error: string) => void | null;
constructor() {
this.queue = [];
this.escalateErrorFn = null;
}
/**
* Enabling setup logger after init
*/
init() {
init(escalateErrorFn: (error: string) => void) {
this.queue.forEach((log) => {
this._push(log);
});
this.queue = [];
// we only get this when running in electron
if (escalateErrorFn) {
this.escalateErrorFn = escalateErrorFn;
}
}
private addToQueue(log: Log) {
@@ -105,6 +112,7 @@ class Logger {
*/
crash(origin: string, text: string) {
this.emit(LogLevel.Severe, origin, text);
this.escalateErrorFn?.(text);
}
/**