- Added: option to override bar characters via instance options on
multibar.create()
- thanks to Araxeus on GitHub - Added: example howto use multibars with different bar styles
- Bugfix: global terminal instance was not used for multibar elements which forces hard string trimming to terminal width - caused by default
linewrap=true
state of the terminal - thanks to emmercm on GitHub
- Bugfix: disabled
gracefulExit
by default, because the default SIGINT/SIGTERM handlers of nodejs are removed
- Bugfix:
MaxListenersExceededWarning
was triggered bygracefulExit
handlers added inv3.11.0
- thanks to TychoTheTaco on GitHub
- Added:
log()
convenience method the multibar to enable custom logging output on top of the progress bars during operation - Added:
gracefulExit
option (enabled by default) to stop the bars in case ofSIGINT
orSIGTERM
- this restores most cursor settings before exiting - Added:
progressCalculationRelative
option (disabled by default) to use thestartValue
as offset for the progress calculation and calculate the absolute progress from the difference given bytotal-startValue
#121 - Added: ability to pass bar options (overrides the global options) to
multibar.create
- Bugfix: within a non-tty environment (e.g. CI/CD taskrunners)
multibar.create()
returns an undefined value in casenoTTYOutput
is not enabled #117
- Changed: foreground color of
preset.shades-grey
is set directly by ANSI codes - Changed: example snippets are using
ansi-colors
library - Bugfix: removed
colors
dependency due to some issues with the maintainer... see Zalgo bomb
- Bugfix: duration calculation doesn't work for bar restart scenarios - thanks to autlaw on GitHub
- Added: exported standard formatter and format helper
- Added: example howto use multibars in synchronous context
- Changed: upper eta display limit to
1e7
(115days) #92
- Bugfix: bar duration not stopped until all bars have finished - thanks to omjadas on GitHub
- Bugfix: percentage calculation used
Math.round
which caused incorrect values for edge cases - thanks to OxCom on GitHub
- Changed: allow to pass payload as first argument to
increment()
with implicit delta of 1 - thanks to ecdeveloper on GitHub - Changed: allow to pass payload as first argument to
update()
without updating bar value - Bugfix:
formatTime
option ignored due to type - thanks to omjadas on GitHub
- Added: asynchronous eta update for long running processes (optional) - feature requested on GitHub
- Added: method to trigger eta calculation without progress update
- Bugfix: bar initialization overrides options within all instances - thanks to BigBrainAFK on GitHub
- Added: support for custom time-format function
- Added: support for custom bar-format function
- Added: support for custom value-format function
- Added: auto-padding option to enforce fixed size of values - feature requested on GitHub
- Added:
barGlue
option to insert ascii escape sequences (e.g. for colorization) between the bar complete/incomplete elements - feature requested on GitHub - Bugfix:
eta
value can be negative for multibars in case the bar is alredy completed
- Added: support for events via EventEmitter - feature requested on GitHub
- Added: testsuites based on mocha - thanks to on GitHub
- Added: automatic tests via Travis CI
- Bugfix: Fixing issues with falsy values in format which causes remdering artifacts - thanks to on GitHub
- Bugfix: documentation of the
stream
options was wrong - thanks to ehmicky on GitHub - Changed: updated examples/syntax of
README.md
- thanks to justsml on GitHub
- Bugifx: synchronous update may cause unexpected behaviour on multibars - limited to single bars
- Changed: renamed internal eta
push()
method toupdate()
- Changed: moved internal eta calculation call into
update()
- Added: option to pass custom formatters as callback via
options.format
- Changed: replaced static placeholder code with generic regex (performance enhancement)
- Added:
emptyOnZero
option to display total:0 bars as empty, not full - thanks to nickcmaynard on GitHub - Bugfix: removed cursor save/restore calls for multibars - clearOnComplete might not work on all environments - thanks to sayem314 onGitHub
- Added: notty support (interval/schedule based output) - feature requested on GitHub
- Added:
stopOnComplete
support withinMultiBar
- thanks to Nox-404 on GitHub - Changed: initial throttel time of
MultiBar
is controlled byfps
option instead of static500ms
value - Bugfix: provided option didn't take precedence over the preset as in v2 - thanks to AxelTerizaki on GitHub #37
- Added: multi-progressbar support - feature requested on GitHub
- Added: option
synchronousUpdate
to control the synchronized redraw duringupdate()
call (default=true
) - Changed: project split into multiple classes
- Changed: default cli progress output is written to
stdout
instead ofstderr
- Bugifx: preset object got altered by options - thanks to rvalitov on GitHub #27
- Added:
align
option to change the position of the progress bar (left, center, right) - thanks to sidneys on GitHub #22 - Changed: ETA value of type
Infinity
is displayed as INF,NaN
as NULL - feature requested by AxelTerizaki on GitHub #21 - Changed: Limited the maximum ETA value to
100000s
(INF is displayed in this case) - Changed: ETA calculation moved to own scope
- Bugfix: example
example-notty.php
was broken
Upgrade is possible without any code modifications! requires node.js 4
- Added: option
linewrap
to disable terminal line wrapping (default) - Changed: requires node.js >= 4
- Changed: Native ES2015 class syntax
- Changed: renamed application entry file to
cli-progress.js
- Changed: low-level terminal interactions are encapsulated within
Terminal
class - Changed: terminal/cursor settings are restored after progress bar stopped
- Bugfix: used hex ascii escape sequences instaed of octals to avoid javascript errors in recent nodejs version
- Bugfix: disabled line wrapping by default to avoid multiple line breaks on small terminals (cut on the right) - reported by puppeteer701 on GitHub #20
- Added: method
setTotal()
to manipulate the total value within running progress-bar - feature requested by ReggaePanda on GitHub #19 - Changed: moved example file to
examples/
directory
- Added: payload argument to
increment()
- feature requested by dsego on GitHub #18
- Bugfix:
roundTo
parameter was not set forelapsedTime
calculation which caused raw float values within formatted time strings - thanks to rekinyz on GitHub #16
- Added: Additional payload data which can be used as custom-tokens within the bar - thanks to tobiasps on GitHub #15
- Bugfix: Progressbar cannot be initialized to 0% - thanks to erikkallen on GitHub #13
- Bugfix: ETA was NULL in case the progress bar is initialized with (0/0)
- Added: 0 values for total/progress initialization are allowed - feature requested by jfmmm on GitHub #11
- Added: Preset/Theme support. Different bar-styles can be loaded from internal library (in addition to full customization)
- Added: Dependency colors for colorized progress bars
- Added: Preset
legacy
- Added: Preset
shades-classic
- Added: Preset
shades-grey
- Added: Preset
rect
- Added:
example-notty
to test the behaviour of progress bar in non-interactive environments (input streams closed) - Bugfix:
update()
throws an error in non-tty environments - reported by Ognian on GitHub #9
- Added:
stopOnComplete
option to automatically callstop()
when the value reaches the total - thanks to lennym on GitHub #7
- Added:
increment()
method to increase the current progress relatively - thanks to lennym on GitHub #6 - Added: ETA time formatting options (mm:ss, hh:mm, ss) - thanks to lennym on GitHub #5
- Improvement: More accurate ETA calculation using linear estimation of last N values - thanks to lennym on GitHub #4
- Bugfix: FPS calculation error which caused performance issues - thanks to lennym on GitHub #7
- Bugfix: stdout.cursorTo/stdout.clearLine is not a function; replaced by
readline
- thanks to remcoder on GitHub
- Bugfix: Hide cursor options was enabled by default
- Added: Support for synchronous operations (interval has been replaced by timeout and throttle time) - feature requested GitHub
- Added: Synchronous Operation Example
example-synchronous.js
- Added: Option to hide the cursor
options.hideCursor
- default set to false - Changed: Improved ETA calculation
- Bugfix: the bar-size is limited to
options.barsize
- in some (numerical) situations it can be too long (n+1)
- Initial public release