I'm trying to change the prompt for Node's REPL with text given inside the REPL.
My original attempt was something like this.
import repl from 'repl'
let PROMPT = 'original > '
repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text} >`
return callback()
}
})
I realized this isn't gonna work because the prompt for the repl is set when the process starts.
I came up with something like this, which starts a new repl with a new prompt after ever entered command.
import repl from 'repl'
let PROMPT = 'original > '
let REPL = createRepl(PROMPT)
function createRepl (prompt) {
return repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text.replace(/\n/, '')} >`
REPL.close()
REPL = createRepl(PROMPT)
}
})
}
This solution is almost there the issue is that the process is exiting when I close the original REPL.
I'm simply trying to change the REPL prompt from inside the script after the process starts. I'm open to any means to do this. Ideally the prompt
prop took a function with the prompt
argument and allowed you to set it from within the function, then I could use an event or something else.
You should be able to call repl.setPrompt('foo> ');
to change the prompt.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With