mirror of
https://github.com/vvsviridov/enm-cli.git
synced 2025-11-11 01:15:42 +00:00
35 lines
653 B
JavaScript
Executable File
35 lines
653 B
JavaScript
Executable File
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 |