1.0.4 • Published 7 years ago
progress-info v1.0.4
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