From 6823b23ac4d5ba532e00f05656c66b4161e234f5 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 12 Feb 2024 16:59:14 +0100 Subject: [PATCH 1/2] Init jsrunners on threads --- packages/server/src/threads/utils.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/server/src/threads/utils.ts b/packages/server/src/threads/utils.ts index a0f3bbdc47..cd547cacae 100644 --- a/packages/server/src/threads/utils.ts +++ b/packages/server/src/threads/utils.ts @@ -2,6 +2,7 @@ import { QueryVariable } from "./definitions" import env from "../environment" import * as db from "../db" import { redis, db as dbCore } from "@budibase/backend-core" +import * as jsRunner from "../jsRunner" const VARIABLE_TTL_SECONDS = 3600 let client: any @@ -29,7 +30,9 @@ export function threadSetup() { console.debug(`[${env.FORKED_PROCESS_NAME}] thread setup skipped`) return } + console.debug(`[${env.FORKED_PROCESS_NAME}] thread setup running`) + jsRunner.init() db.init() } From 70db60a360fe88ee3feeccf3142c4b421dfda168 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 12 Feb 2024 17:04:29 +0100 Subject: [PATCH 2/2] Move default setJSRunner from mjs to index --- packages/string-templates/src/index.js | 17 +++++++++++++++++ packages/string-templates/src/index.mjs | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/string-templates/src/index.js b/packages/string-templates/src/index.js index f370b67272..bcd63d2e6f 100644 --- a/packages/string-templates/src/index.js +++ b/packages/string-templates/src/index.js @@ -1,3 +1,4 @@ +const vm = require("vm") const handlebars = require("handlebars") const { registerAll, registerMinimum } = require("./helpers/index") const processors = require("./processors") @@ -402,3 +403,19 @@ const errors = require("./errors") module.exports.JsErrorTimeout = errors.JsErrorTimeout module.exports.helpersToRemoveForJs = helpersToRemoveForJs + +if (process && !process.env.NO_JS) { + /** + * Use polyfilled vm to run JS scripts in a browser Env + */ + javascript.setJSRunner((js, context) => { + context = { + ...context, + alert: undefined, + setInterval: undefined, + setTimeout: undefined, + } + vm.createContext(context) + return vm.runInNewContext(js, context, { timeout: 1000 }) + }) +} diff --git a/packages/string-templates/src/index.mjs b/packages/string-templates/src/index.mjs index 5ac7981fee..f54ca7e23e 100644 --- a/packages/string-templates/src/index.mjs +++ b/packages/string-templates/src/index.mjs @@ -1,4 +1,3 @@ -import vm from "vm" import templates from "./index.js" /** @@ -24,20 +23,4 @@ export const setOnErrorLog = templates.setOnErrorLog export const FIND_ANY_HBS_REGEX = templates.FIND_ANY_HBS_REGEX export const helpersToRemoveForJs = templates.helpersToRemoveForJs -if (process && !process.env.NO_JS) { - /** - * Use polyfilled vm to run JS scripts in a browser Env - */ - setJSRunner((js, context) => { - context = { - ...context, - alert: undefined, - setInterval: undefined, - setTimeout: undefined, - } - vm.createContext(context) - return vm.runInNewContext(js, context, { timeout: 1000 }) - }) -} - export * from "./errors.js"