From 1d07633643b02d2bdf44b074363b4f6f1faa7700 Mon Sep 17 00:00:00 2001 From: Andrew Seier Date: Tue, 13 Feb 2024 15:25:01 -0800 Subject: [PATCH] =?UTF-8?q?Leverage=20error=20=E2=80=9Ccause=E2=80=9D=20fo?= =?UTF-8?q?r=20wrapping=20render=20errors.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Because some template engines can throw _immutable_ errors, it’s safer and better to use an “error cause” to _chain_ the old error to our own versus trying to mutate the original. Closes #128. --- x-element.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-element.js b/x-element.js index 8a9d215..42482b8 100644 --- a/x-element.js +++ b/x-element.js @@ -123,8 +123,8 @@ export default class XElement extends HTMLElement { render(renderRoot, result); } catch (error) { const pathString = XElement.#toPathString(this); - error.message = `${error.message} — Invalid template for "${this.constructor.name}" at path "${pathString}"`; - throw error; + const message = `${error.message} — Invalid template for "${this.constructor.name}" at path "${pathString}"`; + throw new Error(message, { cause: error }); } }