From 9d6ea4b4fa398fc271c206a426e89cb48ad0861c Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Fri, 23 Dec 2022 09:20:05 -0800 Subject: [PATCH 1/4] fix(core): Improve error messages for Firefox and Safari browsers --- packages/core/src/pattern.mjs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/core/src/pattern.mjs b/packages/core/src/pattern.mjs index a7f3a460c4e..e3aa4aa9124 100644 --- a/packages/core/src/pattern.mjs +++ b/packages/core/src/pattern.mjs @@ -172,6 +172,12 @@ Pattern.prototype.draftPartForSet = function (partName, set) { } return result } catch (err) { + // If the browser's JavaScript engine doesn't include the error's + // "name: message" string at the top of the stack, manually push it + // onto the stack so the information is shown in the error log. + if (!err.stack.startsWith(err.toString())) { + err.stack = err.toString() + '\n' + err.stack + } this.setStores[set].log.error([`Unable to draft part \`${partName}\` (set ${set})`, err]) } } else From 99ca06dba65fd22a0ad2ce098ccfd90b476cfb06 Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Thu, 29 Dec 2022 08:45:32 -0800 Subject: [PATCH 2/4] Revert "fix(core): Improve error messages for Firefox and Safari browsers" This reverts commit 9d6ea4b4fa398fc271c206a426e89cb48ad0861c. --- packages/core/src/pattern.mjs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/core/src/pattern.mjs b/packages/core/src/pattern.mjs index e3aa4aa9124..a7f3a460c4e 100644 --- a/packages/core/src/pattern.mjs +++ b/packages/core/src/pattern.mjs @@ -172,12 +172,6 @@ Pattern.prototype.draftPartForSet = function (partName, set) { } return result } catch (err) { - // If the browser's JavaScript engine doesn't include the error's - // "name: message" string at the top of the stack, manually push it - // onto the stack so the information is shown in the error log. - if (!err.stack.startsWith(err.toString())) { - err.stack = err.toString() + '\n' + err.stack - } this.setStores[set].log.error([`Unable to draft part \`${partName}\` (set ${set})`, err]) } } else From 49c05bd4199149fb2187c0348b2bcc21d39f1a3c Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Thu, 29 Dec 2022 08:49:47 -0800 Subject: [PATCH 3/4] fix(shared): Ensure that error name and message info is included in error log --- sites/shared/components/workbench/logs.js | 38 ++++++++++++++--------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/sites/shared/components/workbench/logs.js b/sites/shared/components/workbench/logs.js index 14fb6d03309..320cbf169b3 100644 --- a/sites/shared/components/workbench/logs.js +++ b/sites/shared/components/workbench/logs.js @@ -2,21 +2,29 @@ import Markdown from 'react-markdown' import { formatMm } from 'shared/utils' import { Tab, Tabs } from '../mdx/tabs.js' -export const Error = ({ err }) => ( -
-    {err.stack
-      .split(/\n/g)
-      .slice(0, 5)
-      .map((l, i) => (
-         0 ? ' break-all' : '')}
-        >
-          {l}
-        
-      ))}
-  
-) +export const Error = ({ err }) => { + // Include the error name and message info if it isn't already at the top + // of the error stack. + let stack = err.stack + if (!err.stack.startsWith(err.toString())) { + stack = err.toString() + '\n' + err.stack + } + return ( +
+      {stack
+        .split(/\n/g)
+        .slice(0, 5)
+        .map((l, i) => (
+           0 ? ' break-all' : '')}
+          >
+            {l}
+          
+        ))}
+    
+ ) +} // Markdown wrapper to suppress creation of P tags const Md = ({ children }) => ( From 91137f5fa6b7b7a2c7c9c99e8d5eb153338d209e Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Thu, 29 Dec 2022 10:37:19 -0800 Subject: [PATCH 4/4] fix(shared): Remove unused variable, per lint --- sites/shared/components/workbench/logs.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/sites/shared/components/workbench/logs.js b/sites/shared/components/workbench/logs.js index 320cbf169b3..83579e04da5 100644 --- a/sites/shared/components/workbench/logs.js +++ b/sites/shared/components/workbench/logs.js @@ -105,8 +105,6 @@ const StoreLogs = ({ logs, units }) => ( ) const Logs = (props) => { - const renderProps = props.draft.getRenderProps() - return (