Smoothing function for progress bars (e.g. upload, download, etc.)
npm install progress-smootherprogress-smootherSmoothing Function for Progress Bars
``shell`
npm install progress-smoother
`javascript
const { ProgressSmoother } = require("progress-smoother")
const progress = ProgressSmoother({
// Required.
maxValue: 12345, // Maximum value of your progress bar.
valueIncreaseRatePerSecond: 5000, // Estimated minimum throughput for '.setValue()' calls.
valueIncreaseDelta: 500, // Estimated minimum delta between '.setValue()' calls.
averageTimeBetweenValues: 5000, // Estimated mean time between '.setValue()' calls in milliseconds.
minDelayUntilFirstValue: 6000, // Estimated minimum delay until the first '.setValue()' call is made.
// Optional.
teardownTime: 2000 // Latency your app introduces after 100% progress (the function incorporates it).
});
// Report progress events:
progress.setValue(1025);
progress.setValue(3201);
...
progress.setValue(12345);
// Get smoothed progress any time (e.g. on a fixed interval):
progress.smoothedFactor(); // Returns 0..1
`
If you would like to contribute to progress-smoother`:
1. Add a GitHub Star to the project (if you're feeling generous!).
2. Determine whether you're raising a bug, feature request or question.
3. Raise your issue or PR. 🚀