Files
llm-functions/tools/execute_js_code.js
sigoden d2a537c374 refactor: several improvements (#132)
- js export expression
- check args regarding run-agent/run-tool
2024-11-30 17:14:21 +08:00

23 lines
575 B
JavaScript

/**
* Execute the javascript code in node.js.
* @typedef {Object} Args
* @property {string} code - Javascript code to execute, such as `console.log("hello world")`
* @param {Args} args
*/
exports.run = function ({ code }) {
let output = "";
const oldStdoutWrite = process.stdout.write.bind(process.stdout);
process.stdout.write = (chunk, _encoding, callback) => {
output += chunk;
if (callback) callback();
};
const value = eval(code);
if (value !== undefined) {
output += value;
}
process.stdout.write = oldStdoutWrite;
return output;
}