UNPKG

synchro-prompt

Version:

super simple synchronous cli prompt using readline-sync with chalk coloring

46 lines (38 loc) 1.11 kB
var readlineSync = require('readline-sync'), chalk = require('chalk'); var _defaults = { color: 'yellow', transform: function(input) { return input; } }; var defaults = _defaults; module.exports = function(message, options) { // reset to factory defaults if (!arguments.length) { defaults = _defaults; return; } // override default options from here on out var kind = typeof message; if (kind !== 'string' && kind !== 'number' && !(message instanceof Array)) { defaults = message; return; } return prompt(message, options); }; function merge(dest, src) { for (var prop in src) { if (dest[prop] === void 0) dest[prop] = src[prop]; } return dest; }; function prompt(message, options) { options = options ? merge(options, defaults) : defaults; if (message instanceof Array) { console.log('...about to map...'); return message.map(function(mess) { return prompt(mess, options); }); } var input = readlineSync.question(chalk[options.color](message)); return options.transform(input); }