wudysoft commited on
Commit
811d145
·
verified ·
1 Parent(s): d9aca22

Update app.js

Browse files
Files changed (1) hide show
  1. app.js +14 -5
app.js CHANGED
@@ -2148,13 +2148,22 @@ app.post("/playwright", async (req, res) => {
2148
  if (!code) return res.status(400).json({ output: "code is required" });
2149
 
2150
  try {
2151
- const vm = new NodeVM({
2152
- require: { external: ["playwright"], builtin: [] },
2153
- });
 
 
 
 
 
 
 
 
2154
 
2155
- const functionInSandbox = vm.run(`module.exports = async (callback) => { ${code} };`, import.meta.url);
2156
- functionInSandbox((output) => res.json({ output }));
2157
  } catch (error) {
 
2158
  res.status(500).json({ output: error.message });
2159
  }
2160
  });
 
2148
  if (!code) return res.status(400).json({ output: "code is required" });
2149
 
2150
  try {
2151
+ const logs = [];
2152
+ const originalConsoleLog = console.log;
2153
+ console.log = (...args) => {
2154
+ logs.push(args.map(arg => (typeof arg === "object" ? JSON.stringify(arg, null, 2) : String(arg))).join(" "));
2155
+ originalConsoleLog(...args);
2156
+ };
2157
+
2158
+ const vm = new NodeVM({ require: { external: ["playwright"], builtin: [] } });
2159
+ const wrappedCode = `(async () => { ${code} })();`;
2160
+ const result = await vm.run(wrappedCode, import.meta.url);
2161
+ if (result !== undefined) logs.push(String(result));
2162
 
2163
+ console.log = originalConsoleLog;
2164
+ res.json({ output: logs.length ? logs.join("\n") : "No output captured" });
2165
  } catch (error) {
2166
+ console.log = originalConsoleLog;
2167
  res.status(500).json({ output: error.message });
2168
  }
2169
  });