From 03864f2ce258df293c4a3ba69fd4f954a9c917a2 Mon Sep 17 00:00:00 2001 From: "Manu Mtz.-Almeida" Date: Mon, 24 Aug 2020 13:46:38 +0200 Subject: [PATCH] fix(worker): error passing --- package-lock.json | 6 +++--- package.json | 2 +- src/compiler/bundle/worker-plugin.ts | 23 ++++++++++++++++++++--- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5195917580e..b4610f0d3a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10997,9 +10997,9 @@ } }, "rollup": { - "version": "2.26.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.4.tgz", - "integrity": "sha512-6+qsGuP0MXGd7vlYmk72utm1MrgZj5GfXibGL+cRkKQ9+ZL/BnFThDl0D5bcl7AqlzMjAQXRAwZX1HVm22M/4Q==", + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz", + "integrity": "sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==", "dev": true, "requires": { "fsevents": "~2.1.2" diff --git a/package.json b/package.json index 91f35a43b53..3e5c7732796 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "prettier": "^2.0.5", "prompts": "2.3.2", "puppeteer": "~5.2.1", - "rollup": "2.26.4", + "rollup": "2.26.5", "semiver": "^1.1.0", "semver": "7.3.2", "sizzle": "^2.3.5", diff --git a/src/compiler/bundle/worker-plugin.ts b/src/compiler/bundle/worker-plugin.ts index 562c55d2e94..911f594462b 100644 --- a/src/compiler/bundle/worker-plugin.ts +++ b/src/compiler/bundle/worker-plugin.ts @@ -248,8 +248,22 @@ addEventListener('message', async ({data}) => { } catch (e) { value = null; - ${isDev ? 'console.error(e);' : ''} - err = e; + ${isDev ? 'console.error("Error when calling worker routine", e);' : ''} + if (e instanceof Error) { + err = { + isError: true, + value: { + message: e.message, + name: e.name, + stack: e.stack, + } + }; + } else { + err = { + isError: false, + value: e + }; + } value = undefined; } @@ -285,7 +299,10 @@ export const createWorker = (workerPath, workerName, workerMsgId) => { pending.delete(id); if (err) { - reject(err); + reject((err.isError) + ? Object.assign(new Error(err.value.message), err.value) + : err.value + ); } else { if (callbackIds) { callbackIds.forEach(id => callbacks.delete(id));