Files
enm-cli/util/SpinnerWithCounter.js
Vyacheslav.Sviridov 1fb7a6f81b first commit
2022-05-13 18:13:36 +06:00

35 lines
619 B
JavaScript

const ora = require('ora')
class SpinnerWithCounter {
constructor() {
this.spinner = null
this.counter = 0
}
start(text) {
if (!this.spinner) {
this.spinner = ora(text)
this.spinner.start()
}
this.counter = ++this.counter
}
succeed() {
this.counter = --this.counter
if (this.spinner && this.counter === 0) {
this.spinner.succeed()
this.spinner = null
}
}
fail() {
this.counter = --this.counter
if (this.spinner && this.counter === 0) {
this.spinner.fail()
this.spinner = null
}
}
}
module.exports = SpinnerWithCounter