Merge pull request #12597 from Budibase/js-timeout-error

Tell a user if their JS failed due to a timeout.
This commit is contained in:
Sam Rose 2023-12-15 16:55:00 +00:00 committed by GitHub
commit 159a8c0e96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View File

@ -56,6 +56,10 @@ module.exports.processJS = (handlebars, context) => {
const res = { data: runJS(js, sandboxContext) } const res = { data: runJS(js, sandboxContext) }
return `{{${LITERAL_MARKER} js_result-${JSON.stringify(res)}}}` return `{{${LITERAL_MARKER} js_result-${JSON.stringify(res)}}}`
} catch (error) { } catch (error) {
console.log(`JS error: ${typeof error} ${JSON.stringify(error)}`)
if (error.code === "ERR_SCRIPT_EXECUTION_TIMEOUT") {
return "Timed out while executing JS"
}
return "Error while executing JS" return "Error while executing JS"
} }
} }

View File

@ -114,7 +114,7 @@ describe("Test the JavaScript helper", () => {
it("should timeout after one second", () => { it("should timeout after one second", () => {
const output = processJS(`while (true) {}`) 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", () => { it("should prevent access to the process global", () => {