For reading user input from stdin.
Similar to the readline
builtin's question()
method, but with a
few more features.
const { read } = require('read')
// or with ESM: import { read } from 'read'
try {
const result = await read(options)
} catch (er) {
console.error(er)
}
Every option is optional.
prompt
What to write to stdout before reading input.silent
Don't echo the output as the user types it.replace
Replace silenced characters with the supplied character value.timeout
Number of ms to wait for user input before giving up.default
The default value if the user enters nothing.edit
Allow the user to edit the default value.terminal
Treat the output as a TTY, whether it is or not.input
Readable stream to get input data from. (defaultprocess.stdin
)output
Writable stream to write prompts to. (default:process.stdout
)completer
Autocomplete callback (see official api for details
If silent is true, and the input is a TTY, then read will set raw mode, and read character by character.
Patches welcome.