| import subprocess | |
| import tempfile | |
| import os | |
| class JSEvaluator: | |
| """ | |
| Evaluates JS/TS code using Node.js subprocess (basic placeholder). | |
| """ | |
| def __init__(self, name="js_evaluator"): | |
| self.name = name | |
| def evaluate(self, code_str): | |
| try: | |
| # Write code to a temporary file | |
| with tempfile.NamedTemporaryFile(mode='w', suffix='.js', delete=False) as tmp_file: | |
| tmp_file.write(code_str) | |
| tmp_path = tmp_file.name | |
| # Execute Node.js process | |
| result = subprocess.run(['node', tmp_path], capture_output=True, text=True, timeout=5) | |
| # Clean up temp file | |
| os.remove(tmp_path) | |
| return {"success": result.returncode == 0, "stdout": result.stdout, "stderr": result.stderr} | |
| except Exception as e: | |
| return {"success": False, "error": str(e)} |