Generate a CLI progress bar as a string that you can then output in any way you like.
npm install progress-string --save
var progress = require('progress-string')
var diff = require('ansi-diff-stream')()
var value = 0
var total = 42
var bar = progress({width: 50, total: total})
setInterval(function () {
diff.write(
'The progress of the program is:\n' +
bar(++value)
)
if (value === total) process.exit()
}, 250)
diff.pipe(process.stdout)
This module exposes a function that takes a single options
argument
and retuns a bar function.
These are the options:
total
- (integer) The max value of the progress barwidth
- (integer, default: 42) The width of the progress bar in charsincomplete
- (string, default:-
) The char used to indicate the incomplete part of the progress barcomplete
- (string, default:=
) The char used to indicate the completed part of the progress barstyle
- (function, optional) Seeoptions.style
below for details
You can provide a custom styling function to style the progress bar
returned by the bar
function.
It will be called with two arguments: complete
and incomplete
. Each
a string representing its part of the progress bar.
Whatever the style function returns will be returned by the bar
function.
var bar = progress({
width: 10,
total: 100,
style: function (complete, incomplete) {
// add an arrow at the head of the completed part
return complete + '>' + incomplete
}
})
console.log(bar(50)) // =====>-----
Call the bar
function with the value
you want to the generated
progress bar to have.
The bar
function will return a string representation of the progress
bar.
MIT