Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | const {pipe} = require('./pipe') const replEvalF = mode => (parser, commands) => { const parse = parser(commands) return (cmd, context, filename, callback) => { const {errs, args} = parse(cmd) const results = Object.entries(args).map(([key, value]) => { const cmd = commands.opts.find(_ => _.args.includes(key)) || { action: _ => 42 } const action = cmd.action || (_ => 42) return typeof action === 'undefined' ? mode.resolve() : mode.resolve(action(value, errs)) }) return pipe( mode.all, mode.then(() => callback(null, undefined)), mode.catch(err => callback(null, err === null ? undefined : err)) )(results) } } module.exports = { replEvalF } |