65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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)
 | 
						|
}
 |