From 92a230667fcd3ae71759c570bcc3463dae5a976d Mon Sep 17 00:00:00 2001 From: Sam Rose Date: Fri, 15 Dec 2023 16:27:20 +0000 Subject: [PATCH 1/2] Tell a user if their JS failed due to a timeout. --- packages/string-templates/src/helpers/javascript.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/string-templates/src/helpers/javascript.js b/packages/string-templates/src/helpers/javascript.js index c5996c25f0..d757408780 100644 --- a/packages/string-templates/src/helpers/javascript.js +++ b/packages/string-templates/src/helpers/javascript.js @@ -56,6 +56,9 @@ module.exports.processJS = (handlebars, context) => { const res = { data: runJS(js, sandboxContext) } return `{{${LITERAL_MARKER} js_result-${JSON.stringify(res)}}}` } catch (error) { + if (error.code === "ERR_SCRIPT_EXECUTION_TIMEOUT") { + return "Timed out while executing JS" + } return "Error while executing JS" } } From b963e7081e55e5dab19433ad5a9204d96f7fb5b8 Mon Sep 17 00:00:00 2001 From: Sam Rose Date: Fri, 15 Dec 2023 16:50:36 +0000 Subject: [PATCH 2/2] Fix test. --- packages/string-templates/src/helpers/javascript.js | 1 + packages/string-templates/test/javascript.spec.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/string-templates/src/helpers/javascript.js b/packages/string-templates/src/helpers/javascript.js index d757408780..53baec8613 100644 --- a/packages/string-templates/src/helpers/javascript.js +++ b/packages/string-templates/src/helpers/javascript.js @@ -56,6 +56,7 @@ module.exports.processJS = (handlebars, context) => { const res = { data: runJS(js, sandboxContext) } return `{{${LITERAL_MARKER} js_result-${JSON.stringify(res)}}}` } catch (error) { + console.log(`JS error: ${typeof error} ${JSON.stringify(error)}`) if (error.code === "ERR_SCRIPT_EXECUTION_TIMEOUT") { return "Timed out while executing JS" } diff --git a/packages/string-templates/test/javascript.spec.js b/packages/string-templates/test/javascript.spec.js index bbc1cce246..652f7ac1cd 100644 --- a/packages/string-templates/test/javascript.spec.js +++ b/packages/string-templates/test/javascript.spec.js @@ -114,7 +114,7 @@ describe("Test the JavaScript helper", () => { it("should timeout after one second", () => { const output = processJS(`while (true) {}`) - expect(output).toBe("Error while executing JS") + expect(output).toBe("Timed out while executing JS") }) it("should prevent access to the process global", () => {