From e1a26cb4f2032dfb44908ecb73b9039ca1c7dc04 Mon Sep 17 00:00:00 2001 From: sigoden Date: Sat, 26 Oct 2024 08:26:52 +0800 Subject: refactor: execute js/py code (#118) --- tools/execute_js_code.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'tools/execute_js_code.js') diff --git a/tools/execute_js_code.js b/tools/execute_js_code.js index 6bad67a..3ca0401 100644 --- a/tools/execute_js_code.js +++ b/tools/execute_js_code.js @@ -1,5 +1,3 @@ -const vm = require('vm'); - /** * Execute the javascript code in node.js. * @typedef {Object} Args @@ -7,7 +5,15 @@ const vm = require('vm'); * @param {Args} args */ exports.run = function run({ code }) { - const context = vm.createContext({}); - const script = new vm.Script(code); - return script.runInContext(context); + let log = ""; + const oldStdoutWrite = process.stdout.write.bind(process.stdout); + process.stdout.write = (chunk, _encoding, callback) => { + log += chunk; + if (callback) callback(); + }; + + eval(code); + + process.stdout.write = oldStdoutWrite; + return log; } -- cgit v1.2.3