embark-area-51/lib/core/modules/coderunner/runCode.js

28 lines
635 B
JavaScript
Raw Normal View History

2018-08-24 13:05:19 +00:00
const vm = require('vm');
2018-05-23 15:16:56 +00:00
2018-08-24 13:05:19 +00:00
class RunCode {
constructor() {
this.context = Object.assign({}, global.this);
}
2017-02-18 21:53:49 +00:00
2018-08-24 13:05:19 +00:00
doEval(code) {
return vm.runInNewContext(code, this.context);
}
2017-02-18 21:53:49 +00:00
2018-08-24 13:05:19 +00:00
registerVar(varName, code) {
// TODO: Update all the code being dependent of web3
// To identify, look at the top of the file for something like:
// /*global web3*/
if (varName === 'web3') {
global.web3 = code;
}
this.context[varName] = code;
}
2018-05-23 15:16:56 +00:00
2018-08-24 13:05:19 +00:00
getWeb3Config() {
return {defaultAccount: this.context.web3.eth.defaultAccount, provider: this.context.web3.currentProvider};
}
2018-08-08 12:42:45 +00:00
}
2018-08-24 13:05:19 +00:00
module.exports = RunCode;