UNPKG

runtime-shell

Version:

Some useful shell commands for runtime.js

42 lines (37 loc) 1.02 kB
'use strict'; const shellUtil = require('../util'); const evalScope = require('../lib/eval-scope'); module.exports = (runtime) => { runtime.shell.setCommand('eval', (args, env, cb) => { const evalCode = (text) => { try { const result = evalScope(text); if (result !== undefined) { env.stdio.writeLine(result); } else { env.stdio.writeLine(''); } return true; } catch(e) { env.stdio.writeError(e); env.stdio.write('\n'); return false; } } const argv = shellUtil.parse(args); if (argv.length > 0) { console.log('hi'); cb(evalCode(argv.join(' ')) ? 0 : 1); } else { let last_res; env.stdio.write('> '); const processText = (text) => { if (text == ".exit") return cb(last_res ? 0 : 1); last_res = evalCode(text); env.stdio.write('> '); env.stdio.readLine(processText); } env.stdio.readLine(processText); } }); };