Skip to content

Commit

Permalink
Added runtime property. Closes #4
Browse files Browse the repository at this point in the history
  • Loading branch information
freeall committed Jan 9, 2014
1 parent 0a0f7cd commit 133aad8
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 13 deletions.
28 changes: 27 additions & 1 deletion README.md
Expand Up @@ -21,7 +21,20 @@ var str = progress({
});

str.on('progress', function(progress) {
console.log(Math.round(progress.percentage) + '% ' + progress.speed + 'b/s' + ' ' + progress.remaining + ' bytes left');
console.log(progress);

/*
{
percentage: 9.05,
transferred: 949624,
length: 10485760,
remaining: 9536136,
eta: 42,
runtime: 3,
delta: 295396,
speed: 949624
}
*/
});

fs.createReadStream(filename)
Expand Down Expand Up @@ -56,6 +69,19 @@ You can get the progress from the progress property.
var str = progress({time:100});

console.log(str.progress);

/*
{
percentage: 9.05,
transferred: 949624,
length: 10485760,
remaining: 9536136,
eta: 10,
runtime: 0,
delta: 295396,
speed: 949624
}
*/
```

## Events
Expand Down
5 changes: 4 additions & 1 deletion index.js
Expand Up @@ -12,20 +12,23 @@ module.exports = function(options, onprogress) {
var nextUpdate = Date.now()+time;
var delta = 0;
var speed = speedometer(options.speed || 5000);
var startTime = Date.now();

var update = {
percentage: 0,
transferred: transferred,
length: length,
remaining: length,
eta: 0
eta: 0,
runtime: 0
};

var emit = function(ended) {
update.delta = delta;
update.percentage = ended ? 100 : (length ? transferred/length*100 : 0);
update.speed = speed(delta);
update.eta = Math.round(update.remaining / update.speed);
update.runtime = parseInt((Date.now() - startTime)/1000);
nextUpdate += time;

delta = 0;
Expand Down
5 changes: 3 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "progress-stream",
"version": "0.3.0",
"version": "0.4.0",
"description": "Read the progress of a stream",
"repository": {
"type": "git",
Expand All @@ -21,7 +21,8 @@
"main": "index.js",
"dependencies": {
"through2": "~0.2.3",
"speedometer": "~0.1.2"
"speedometer": "~0.1.2",
"single-line-log": "~0.3.1"
},
"devDependencies": {
"request": "~2.29.0",
Expand Down
9 changes: 4 additions & 5 deletions test/http.js
Expand Up @@ -10,16 +10,15 @@ var str = progress({
speed: 20
});
str.on('progress', function(progress) {
log(Math.round(progress.percentage)+'%',
numeral(progress.speed).format('0.00 b')+'/s',
numeral(progress.eta).format('00:00:00')+' left',
numeral(progress.remaining).format('0.00 b')+' remaining');
log('Running: '+numeral(progress.runtime).format('00:00:00')+' ('+numeral(progress.transferred).format('0 b')+')\n'+
'Left: '+numeral(progress.eta).format('00:00:00')+' ('+numeral(progress.remaining).format('0 b')+')\n'+
numeral(progress.speed).format('0.00b')+'/s '+Math.round(progress.percentage)+'%');
});

var options = {
method: 'GET',
host: 'cachefly.cachefly.net',
path: '/100mb.test',
path: '/10mb.test',
headers: {
'user-agent': 'testy test'
}
Expand Down
7 changes: 3 additions & 4 deletions test/request.js
Expand Up @@ -8,10 +8,9 @@ var str = progress({
drain: true,
time: 100
}, function(progress) {
log(Math.round(progress.percentage)+'%',
numeral(progress.speed).format('0.00 b')+'/s',
numeral(progress.eta).format('00:00:00')+' left',
numeral(progress.remaining).format('0.00 b')+' remaining');
log('Running: '+numeral(progress.runtime).format('00:00:00')+' ('+numeral(progress.transferred).format('0 b')+')\n'+
'Left: '+numeral(progress.eta).format('00:00:00')+' ('+numeral(progress.remaining).format('0 b')+')\n'+
numeral(progress.speed).format('0.00b')+'/s '+Math.round(progress.percentage)+'%');
});

req('http://cachefly.cachefly.net/10mb.test', {
Expand Down

0 comments on commit 133aad8

Please sign in to comment.