| const ora = require('ora') | 
| const chalk = require('chalk') | 
|   | 
| const spinner = ora() | 
| let lastMsg = null | 
| let isPaused = false | 
|   | 
| exports.logWithSpinner = (symbol, msg) => { | 
|   if (!msg) { | 
|     msg = symbol | 
|     symbol = chalk.green('✔') | 
|   } | 
|   if (lastMsg) { | 
|     spinner.stopAndPersist({ | 
|       symbol: lastMsg.symbol, | 
|       text: lastMsg.text | 
|     }) | 
|   } | 
|   spinner.text = ' ' + msg | 
|   lastMsg = { | 
|     symbol: symbol + ' ', | 
|     text: msg | 
|   } | 
|   spinner.start() | 
| } | 
|   | 
| exports.stopSpinner = (persist) => { | 
|   if (!spinner.isSpinning) { | 
|     return | 
|   } | 
|   | 
|   if (lastMsg && persist !== false) { | 
|     spinner.stopAndPersist({ | 
|       symbol: lastMsg.symbol, | 
|       text: lastMsg.text | 
|     }) | 
|   } else { | 
|     spinner.stop() | 
|   } | 
|   lastMsg = null | 
| } | 
|   | 
| exports.pauseSpinner = () => { | 
|   if (spinner.isSpinning) { | 
|     spinner.stop() | 
|     isPaused = true | 
|   } | 
| } | 
|   | 
| exports.resumeSpinner = () => { | 
|   if (isPaused) { | 
|     spinner.start() | 
|     isPaused = false | 
|   } | 
| } | 
|   | 
| exports.failSpinner = (text) => { | 
|   spinner.fail(text) | 
| } | 
|   | 
| // silent all logs except errors during tests and keep record | 
| if (process.env.VUE_CLI_TEST) { | 
|   require('./_silence')('spinner', exports) | 
| } |