From 9b8eb488c38043877a4884cdefcba963f3db6174 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Mon, 26 Apr 2021 15:33:07 +0300 Subject: [PATCH] Fix error handling in worker --- src/api/gramjs/worker/worker.ts | 7 +++---- src/util/createWorkerInterface.ts | 12 ++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/api/gramjs/worker/worker.ts b/src/api/gramjs/worker/worker.ts index 60d078cdf..b6d60ee12 100644 --- a/src/api/gramjs/worker/worker.ts +++ b/src/api/gramjs/worker/worker.ts @@ -87,17 +87,16 @@ onmessage = async (message: OriginMessageEvent) => { }; function handleErrors() { - // eslint-disable-next-line no-restricted-globals self.onerror = (e) => { // eslint-disable-next-line no-console console.error(e); - sendToOrigin({ type: 'unhandledError', error: { message: e.message || 'Uncaught exception in worker' } }); + sendToOrigin({ type: 'unhandledError', error: { message: e.error.message || 'Uncaught exception in worker' } }); }; - // eslint-disable-next-line no-restricted-globals + self.addEventListener('unhandledrejection', (e) => { // eslint-disable-next-line no-console console.error(e); - sendToOrigin({ type: 'unhandledError', error: { message: e.reason || 'Uncaught rejection in worker' } }); + sendToOrigin({ type: 'unhandledError', error: { message: e.reason.message || 'Uncaught rejection in worker' } }); }); } diff --git a/src/util/createWorkerInterface.ts b/src/util/createWorkerInterface.ts index fcefbc684..0ee83e958 100644 --- a/src/util/createWorkerInterface.ts +++ b/src/util/createWorkerInterface.ts @@ -77,16 +77,16 @@ export default function createInterface(api: Record) { } function handleErrors() { - self.onerror = (err) => { + self.onerror = (e) => { // eslint-disable-next-line no-console - console.error(err); - sendToOrigin({ type: 'unhandledError', error: { message: 'Uncaught exception in worker' } }); + console.error(e); + sendToOrigin({ type: 'unhandledError', error: { message: e.error.message || 'Uncaught exception in worker' } }); }; - self.addEventListener('unhandledrejection', (err) => { + self.addEventListener('unhandledrejection', (e) => { // eslint-disable-next-line no-console - console.error(err); - sendToOrigin({ type: 'unhandledError', error: { message: 'Uncaught rejection in worker' } }); + console.error(e); + sendToOrigin({ type: 'unhandledError', error: { message: e.reason.message || 'Uncaught rejection in worker' } }); }); }