15 lines
413 B
JavaScript
15 lines
413 B
JavaScript
var vm = require('vm')
|
|
|
|
module.exports = function safeEval (code, context, opts) {
|
|
var sandbox = {}
|
|
var resultKey = 'SAFE_EVAL_' + Math.floor(Math.random() * 1000000)
|
|
sandbox[resultKey] = {}
|
|
code = resultKey + '=' + code
|
|
if (context) {
|
|
Object.keys(context).forEach(function (key) {
|
|
sandbox[key] = context[key]
|
|
})
|
|
}
|
|
vm.runInNewContext(code, sandbox, opts)
|
|
return sandbox[resultKey]
|
|
}
|