Skip to content

Commit e469e11

Browse files
authored
Merge pull request gitbutlerapp#9640 from gitbutlerapp/enhance-error-logging
Improve error logging for unhandled promise rejections
2 parents b5566f8 + 5cc655e commit e469e11

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

apps/desktop/src/hooks.client.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,23 @@ export function handleError({
2020
};
2121
}
2222

23+
function loggableError(error: unknown): string {
24+
if (error instanceof Error) {
25+
return error.message;
26+
}
27+
28+
if (typeof error === 'string') {
29+
return error;
30+
}
31+
if (typeof error === 'object' && error !== null) {
32+
if ('message' in error && typeof error.message === 'string') {
33+
return error.message;
34+
}
35+
return JSON.stringify(error);
36+
}
37+
return String(error);
38+
}
39+
2340
// Handler for unhandled errors inside promises.
2441
window.onunhandledrejection = (e: PromiseRejectionEvent) => {
2542
e.preventDefault(); // Suppresses default console logger.
@@ -45,7 +62,8 @@ function logError(error: unknown) {
4562
}
4663

4764
console.error(error);
48-
logErrorToFile(String(error));
65+
const errorMessage = loggableError(error);
66+
logErrorToFile(errorMessage);
4967
} catch (err: unknown) {
5068
console.error('Error while trying to log error.', err);
5169
}

0 commit comments

Comments
 (0)