progress-info
v1.0.4
Published
determine long running progress status.
Downloads
3
Readme
progress-info
determine long running progress status.
Installation
npm install --save progress-info
Usage
Asuming we want to process 100
documents and define a checkpoint size of10\
.
const ProgressInfo = require('progress-info');
var total = 100
var checkpointSize = 10
var progressInfo = new ProgressInfo(total, checkpointSize);
var index = 0;
var interval = setInterval(function () {
index++
if (index % checkpointSize === 0){
console.log(progressInfo.info(index))
progressInfo.checkpoint();
if (index === total){
clearInterval(interval)
done()
}
}
}, 50)
Yields:
checkpoint: 17:02:48 (10.00%) T -5.32 seconds (t 0.59 seconds/10 docs) D -90 (10/100)
checkpoint: 17:02:48 (20.00%) T -4.63 seconds (t 0.58 seconds/10 docs) D -80 (20/100)
checkpoint: 17:02:49 (30.00%) T -4.00 seconds (t 0.57 seconds/10 docs) D -70 (30/100)
checkpoint: 17:02:49 (40.00%) T -3.46 seconds (t 0.58 seconds/10 docs) D -60 (40/100)
checkpoint: 17:02:50 (50.00%) T -2.80 seconds (t 0.56 seconds/10 docs) D -50 (50/100)
checkpoint: 17:02:51 (60.00%) T -2.26 seconds (t 0.56 seconds/10 docs) D -40 (60/100)
checkpoint: 17:02:51 (70.00%) T -1.73 seconds (t 0.58 seconds/10 docs) D -30 (70/100)
checkpoint: 17:02:52 (80.00%) T -1.13 seconds (t 0.56 seconds/10 docs) D -20 (80/100)
checkpoint: 17:02:52 (90.00%) T -0.57 seconds (t 0.57 seconds/10 docs) D -10 (90/100)
checkpoint: 17:02:53 (100.00%) T -0.00 seconds (t 0.56 seconds/10 docs) D -0 (100/100)
API
Constructor
ProgressInfo(documentsTotal, checkpointSize)
Methods
ProgressInfo.rawTimeString(milliseconds)
returns a time in seconds as human readble string.ProgressInfo.estimatedTime(documentIndex)
returns an estimated time in seconds as human readble string.ProgressInfo.percent(documentIndex)
returns an percent value as decimal.ProgressInfo.index(documentIndex)
returns an string in form of [current document] / [total documents].ProgressInfo.docsLeft(documentIndex)
returns a counter integer of forthcoming documents.ProgressInfo.checkpoint()
resets the current time for the next measurement.ProgressInfo.time()
returns a short time string of current time.ProgressInfo.tx()
returns a short time string of past time.ProgressInfo.info(documentIndex)
returns a full information string of current progress like in the usage example above.
License
MIT © Stephan Ahlf