From 7c35270dc1ab2ed15e0886852172a73816c84cd7 Mon Sep 17 00:00:00 2001 From: Jonah Tan <47470981+jonahtanjz@users.noreply.github.com> Date: Sat, 28 May 2022 14:14:10 +0800 Subject: [PATCH] Draft fix for progress bar --- packages/core/src/Site/index.js | 1 + .../core/src/lib/progress/node-progress.js | 9 ++++++++- packages/core/src/utils/logger.ts | 20 ++++++++++--------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/packages/core/src/Site/index.js b/packages/core/src/Site/index.js index b45e8c4b15..cf38ea924c 100644 --- a/packages/core/src/Site/index.js +++ b/packages/core/src/Site/index.js @@ -1190,6 +1190,7 @@ class Site { } this.generateProgressBarStatus(progressBar, context, pageGenerationQueue, resolve); } catch (err) { + progressBar.increment(); logger.error(err); reject(new Error(`Error while generating ${page.pageConfig.sourcePath}`)); } diff --git a/packages/core/src/lib/progress/node-progress.js b/packages/core/src/lib/progress/node-progress.js index 5e6a726686..bd82f46f0d 100644 --- a/packages/core/src/lib/progress/node-progress.js +++ b/packages/core/src/lib/progress/node-progress.js @@ -98,6 +98,7 @@ function ProgressBar(fmt, options) { this.callback = options.callback || function () { }; this.tokens = {}; this.lastDraw = ''; + this.count = this.curr; // Extra counter to keep track of all processed pages } /** @@ -120,12 +121,13 @@ ProgressBar.prototype.tick = function (len, tokens) { if (0 == this.curr) this.start = new Date; this.curr += len + this.count += len // try to render this.render(); // progress complete - if (this.curr >= this.total) { + if (this.count >= this.total) { this.render(undefined, true); this.complete = true; this.terminate(); @@ -134,6 +136,11 @@ ProgressBar.prototype.tick = function (len, tokens) { } }; +// Increment count if page failed to generate +ProgressBar.prototype.increment = function () { + this.count += 1; +} + /** * Method to render the progress bar with optional `tokens` to place in the * progress bar's `fmt` field. diff --git a/packages/core/src/utils/logger.ts b/packages/core/src/utils/logger.ts index 1d3a0be65a..b26b1c624e 100644 --- a/packages/core/src/utils/logger.ts +++ b/packages/core/src/utils/logger.ts @@ -45,15 +45,17 @@ const warnWarp = (input: any) => { }; // create a wrapper for info messages -const infoWarp = (input: any) => { - if (progressBar) { - progressBar.interruptBegin(); - winston.info(input); - progressBar.interruptEnd(); - } else { - winston.info(input); - } -}; +// const infoWarp = (input: any) => { +// if (progressBar) { +// progressBar.interruptBegin(); +// winston.info(input); +// progressBar.interruptEnd(); +// } else { +// winston.info(input); +// } +// }; + +const infoWarp = winston.info; const { debug } = winston; const { verbose } = winston;