Smoothing Function for Progress Bars
npm install progress-smoother
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
:
- Add a GitHub Star to the project (if you're feeling generous!).
- Determine whether you're raising a bug, feature request or question.
- Raise your issue or PR. 🚀