Nodestream - Progress Transform
Progress monitor for Nodestream
This transformer will report detailed stats about the ongoing upload/download back to you via a custom, per-file function.
npm install --save nodestream-transform-progress
You need to register this tranform with Nodestream before you can use it:
// Assuming you already have a nodestream instance configured with an adapternodestream
Now you can create a pipeline which will use this transform:
const pipeline = nodestream
The transform accepts two per-file options:
total: Nodestream cannot determine how much data will flow through it - if you want to have some stats available (like % completed), you must provide the expected size of the stream (in bytes, as integer). How you obtain this information is completely up to you.
update: Pass a function here. This function will be called repeatedly until the stream is finished with detailed statistics about current progress.
The following example demonstrates how to monitor the progress of a single file upload.
const file = fs// WARNING - Do not use *Sync() methods in production! Used for demo purposes only.const size = fssizepipeline
The following progress stats are available for you:
Date) - When the stream has been opened. This occurs approximately when you call
Date) - When the first byte has been received
Date) - When the stream has been completely processed
Number) - For how long (in ms) has the upload been going on? This is updated continuously.
null) - Total number of bytes - you must provide this value yourself. Will be set to the total amount of processed bytes once the stream has finished processing.
Number) - Number of bytes processed so far
null) - Bytes still remaining - requires
totalto be available. Will be set to 0 once the stream has finished processing.
null) - Percentage of current progress - requires
totalto be available. Will be set to 100 once the stream has finished processing.
This transform will publish its final progress stats via
stats on the
progress (this transform's identity) property on the
// Uploadsconst file = fspipeline// Downloadsconst dest = fspipeline
This software is licensed under the BSD-3-Clause License. See the LICENSE file for more information.