UNPKG

chimera-framework

Version:

Language agnostic framework for stand-alone and distributed computing

21 lines (19 loc) 497 B
const requireOnce = require('./require-once.js') let SCRIPT_CACHE = {} module.exports = function safeEval (code, env, opts) { const vm = requireOnce('vm') const sandbox = env || {} let script if (code in SCRIPT_CACHE) { script = SCRIPT_CACHE[code] } else { script = new vm.Script('__SAFE_EVAL_RESULT = ' + code) SCRIPT_CACHE[code] = script } try { script.runInNewContext(sandbox, opts) return sandbox.__SAFE_EVAL_RESULT } catch (error) { return code } }