UNPKG

stratumn-cli

Version:
54 lines (47 loc) 1.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = question; // http://stackoverflow.com/questions/24037545/how-to-hide-password-in-the-nodejs-console function hidden(rl, query, cb) { function handleData(c) { var char = c + ''; switch (char) { case '\n': case '\r': case '\u0004': break; default: process.stdout.write('\x1B[2K\x1B[200D' + query + Array(rl.line.length + 1).join('*')); break; } } process.stdin.on('data', handleData); rl.question(query, function (value) { /*eslint-disable */ rl.history = rl.history.slice(1); /*eslint-enable */ process.stdin.removeListener('data', handleData); cb(value); }); } function question(rl, query, name) { var store = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; var opts = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4]; return new Promise(function (resolve) { var ask = opts.hidden ? hidden.bind(null, rl) : rl.question.bind(rl); ask(query, function (answer) { if (opts.required !== false && !answer) { question(rl, query, name, store, opts).then(resolve); return; } if (answer) { /*eslint-disable */ store[name] = answer; /*eslint-enable */ } resolve(answer); }); }); }