heroku-cli-util
Advanced tools
Comparing version 6.1.14 to 6.1.15
@@ -8,2 +8,3 @@ 'use strict' | ||
const ansi = require('ansi-escapes') | ||
const Spinner = require('./spinner') | ||
@@ -85,2 +86,3 @@ function promptMasked (options) { | ||
let isTTY = process.env.TERM !== 'dumb' && process.stdin.isTTY | ||
let spinnerTask | ||
if (options.mask || options.hide) { | ||
@@ -91,18 +93,24 @@ if (!isTTY) { | ||
return promptMasked(options) | ||
spinnerTask = function () { | ||
return promptMasked(options) | ||
} | ||
} else { | ||
spinnerTask = function () { | ||
return new Promise(function (resolve) { | ||
process.stdin.setEncoding('utf8') | ||
cli.console.writeError(options.prompt) | ||
process.stdin.resume() | ||
process.stdin.once('data', function (data) { | ||
process.stdin.pause() | ||
data = data.trim() | ||
if (data === '') { | ||
resolve(prompt(name)) | ||
} else { | ||
resolve(data) | ||
} | ||
}) | ||
}) | ||
} | ||
} | ||
return new Promise(function (resolve) { | ||
process.stdin.setEncoding('utf8') | ||
cli.console.writeError(options.prompt) | ||
process.stdin.resume() | ||
process.stdin.once('data', function (data) { | ||
process.stdin.pause() | ||
data = data.trim() | ||
if (data === '') { | ||
resolve(prompt(name)) | ||
} else { | ||
resolve(data) | ||
} | ||
}) | ||
}) | ||
return Spinner.prompt(spinnerTask) | ||
} | ||
@@ -109,0 +117,0 @@ |
@@ -102,2 +102,6 @@ 'use strict' | ||
_spin () { | ||
if (Spinner.prompts.length > 0) { | ||
return | ||
} | ||
this.stream.write(this.ansi.cursorUp(this._lines(this._output))) | ||
@@ -121,4 +125,24 @@ let y = this._lines(this.text) - 1 | ||
} | ||
static prompt (promptFn) { | ||
let removeFn = function () { | ||
Spinner.prompts = Spinner.prompts.filter(p => p !== promptFn) | ||
} | ||
Spinner.prompts.push(promptFn) | ||
return promptFn() | ||
.then(data => { | ||
removeFn() | ||
return data | ||
}) | ||
.catch(err => { | ||
removeFn() | ||
throw err | ||
}) | ||
} | ||
} | ||
Spinner.prompts = [] | ||
module.exports = Spinner |
{ | ||
"name": "heroku-cli-util", | ||
"description": "Set of helpful CLI utilities", | ||
"version": "6.1.14", | ||
"version": "6.1.15", | ||
"author": "Jeff Dickey (@dickeyxxx)", | ||
@@ -6,0 +6,0 @@ "bugs": { |
82953
2829