Wrapper around readline-sync with chalk coloring for synchronous cli prompting.
npm install synchro-prompt
var prompt = require('synchro-prompt');
var answer = prompt('Enter value: ');
// $ Enter Value: HELLO!
answer; // HELLO!
// or as an array
var answers = prompt(['Name: ', 'Age: ']);
// $ Name: Jane
// $ Age: Doe
answers instanceof Array; // true
answers; // ['Jane', 'Doe']
By default, the prompt coloring is yellow. This can be overriden
with any valid chalk
color (provided as string), along with an optional
transformation callback which can be used to format or validate input.
var options = {
color: 'magenta',
transform: function(input) {
return input.trim().toLowerCase();
}
};
prompt('Enter something: ', options);
// back to the default no-transform yellow
prompt('And again: ');
You can set the options from one point forward by passing the options hash as the first argument.
// prompt from here on will always use your options
prompt({
color: green,
transform: function(input) {
return Date.now() + '_' + input;
}
});
prompt('...'); // ie. 1426910954458_something
// but you can still override a single call
prompt('...', { transform: function(input) { return input; }});
// future calls without a second argument will go back to prepending a timestamp
// to restore the factory defaults, call the synchro-prompt fn with no arguments
prompt(); // yellow, no-transform