Package Exports
- simple-eta
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-eta) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Simple ETA
Progressively determine the eta of a process out of the percentage reported.
Everything is customizable, no need to define checkpoints or any other shenanigans
Install
npm i simple-eta
const makeEta = require('simple-eta');
const eta = makeEta({ min: 0, max: 100 });
eta.start();
for (let progress = 1; progress <= 100; i += 1) {
// Operation that takes time
eta.report(progress);
console.log(`Aprox. ${eta.estimate()} seconds left`);
}
Constructor
- min
{number=0}
- define the lower limit of your interval - max
{number=1}
- define the upper limit of your interval - historyTimeConstant
{number=2.5}
- define (in seconds) how far into the past to consider data points as still relevanthigher history value
: more time stable. spikes in progress speed will affect ETA lesslower history value
: more adaptive to changes. spikes in progress speed will affect ETA more
- autostart
{boolean=true}
- add the first history point when the class is instantiated or reset
Methods
.start():void
Add the first point to the history. Equivalent to .report(min)
.
Automatically called if autostart
is true
.
.reset():void
Resets the history of the ETA.
.report(number):void
Report the progress within the defined interval, adding a point to the history.
Values outside the interval will produce false results.
.estimate():number
Estimates the time left from the last .report
call to complete the interval.
Time is returned in seconds. Returns Infinity
when an ETA is not available.
.rate():number
Gets the estimated progress speed (progress per second).