diff options
author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
---|---|---|
committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
commit | 703e03aba33f234712206769f57717ba7d92d23d (patch) | |
tree | 0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/progress-stream/README.md | |
parent | ab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff) | |
download | FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst |
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/progress-stream/README.md')
-rw-r--r-- | node_modules/progress-stream/README.md | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/node_modules/progress-stream/README.md b/node_modules/progress-stream/README.md new file mode 100644 index 0000000..85ca574 --- /dev/null +++ b/node_modules/progress-stream/README.md @@ -0,0 +1,163 @@ +# progress-stream + +Read the progress of a stream. Supports speed and eta. + +Gets the lengths of the stream automatically if you're using the request or http module. You can also pass the length on initiation. Progress-stream will also check to see if the stream already have a length property. + + npm install progress-stream + +## Usage + +This example copies a large file, and prints out the percentage, speed and remaining every 100ms. + +```js +var progress = require('progress-stream'); +var fs = require('fs'); + +var stat = fs.statSync(filename); +var str = progress({ + length: stat.size, + time: 100 +}); + +str.on('progress', function(progress) { + console.log(progress); + + /* + { + percentage: 9.05, + transferred: 949624, + length: 10485760, + remaining: 9536136, + eta: 42, + runtime: 3, + delta: 295396, + speed: 949624 + } + */ +}); + +fs.createReadStream(filename) + .pipe(str) + .pipe(fs.createWriteStream(output)); +``` + +## Methods + +### progress([options], [onprogress]) + +You can instantiate in two ways: + +``` js +var str = progress({time:100}); +str.on('progress', function(progress) { ... }); +``` + +or inline the progress listener + +``` js +var str = progress({time:100}, function(progress) { ... }); +``` + +## Properties + +### .progress + +You can get the progress from the progress property. + +``` js +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 + +### on('progress', function(progress) { ... }) + +``` js +var str = progress({time:100}); +str.on('progress', function(progress) { ... }); +``` + +## Options + +### time(integer) + +Sets how often progress events is emitted. If omitted then defaults to emit every time a chunk is received. + +### speed(integer) + +Sets how long the speedometer needs to calculate the speed. Defaults to 5 sec. + +### length(integer) + +If you already know the length of the stream, then you can set it. Defaults to 0. + +### drain(boolean) + +In case you don't want to include a readstream after progress-stream, set to true to drain automatically. Defaults to false. + +### transferred(integer) + +If you want to set how much data have previous been downloaded. Useful for a resumed download. + +## Examples + +### Using the request module + +This example uses request to download a 100 MB file, and writes out the percentage every second. + +You can also find an example in `test/request.js`. + +``` js +var progress = require('progress-stream'); +var req = require('request'); +var fs = require('fs'); + +var str = progress({ + time: 1000 +}); + +str.on('progress', function(progress) { + console.log(Math.round(progress.percentage)+'%'); +}); + +req('http://cachefly.cachefly.net/100mb.test', { headers: { 'user-agent': 'test' }}) + .pipe(str) + .pipe(fs.createWriteStream('test.data')); +``` + +### Using the http module + +In `test/http.js` it's shown how to do it with the http module. + + +## Methods + + +### `setLength(newLength)` + +Sometimes, you don't know how big a stream is right away (e.g. multipart file uploads). You might find out after a few chunks have already passed through the stream, seconds or even minutes later. In this case, you can use the `setLength` method to recalculate the relevant tracked progress data. + +```js +var str = progress({}); +someFickleStreamInstance.pipe(str).pipe(fs.createWriteStream('test.data')); + +someFickleStreamInstance.on('conviction', function nowIKnowMyLength (actualLength) { + str.setLength(actualLength); +}); +``` |