All files / src/repl index.js

0% Statements 0/10
0% Branches 0/5
0% Functions 0/4
0% Lines 0/9

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 27 28 29 30 31 32 33                                                                 
const {Async} = require('./Async')
const nodeRepl = require('repl')
const {replEvalF} = require('./replEval')
const {completer} = require('./completer')
const {Sync} = require('./Sync')
 
const replF = mode => (
  lexer,
  parser,
  commands,
  {
    only = false,
    defaultAction = (value, errs) => {}
  } = {
    only: false,
    defaultAction : (value, errs) => {}
  }
) => {
  console.log(commands.desc ? commands.desc + '\n' : '')
 
  nodeRepl.start({
    prompt: `${commands.key}~$ `,
    ignoreUndefined: true,
    eval: replEvalF(mode)(parser, commands, defaultAction),
    completer: completer(lexer, commands, {only})
  })
}
 
module.exports = {
  repl: replF(Async),
  replF,
  replSync: replF(Sync)
}