async (progress, _cancellationToken) => {
let lastPercentage = 0;
await downloadFile(opts.url, tempFile, opts.mode, !!opts.gunzip, (readBytes, totalBytes) => {
- const newPercentage = (readBytes / totalBytes) * 100;
- progress.report({
- message: newPercentage.toFixed(0) + "%",
- increment: newPercentage - lastPercentage
- });
-
- lastPercentage = newPercentage;
+ const newPercentage = Math.round((readBytes / totalBytes) * 100);
+ if (newPercentage !== lastPercentage) {
+ progress.report({
+ message: `${newPercentage.toFixed(0)}%`,
+ increment: newPercentage - lastPercentage
+ });
+
+ lastPercentage = newPercentage;
+ }
});
}
);