From e7150eef4c7e83f43afca35885624faf117a5143 Mon Sep 17 00:00:00 2001 From: alexander-akait Date: Tue, 29 Jul 2025 14:53:19 +0300 Subject: [PATCH 1/2] refactor: use built-in colors --- package-lock.json | 2 +- package.json | 2 +- src/utils/setupHooks.js | 21 ++++++++++++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index eeb47f105..b726b8938 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "strip-ansi": "^6.0.0", "supertest": "^7.0.0", "typescript": "^5.3.3", - "webpack": "^5.93.0" + "webpack": "^5.101.0" }, "engines": { "node": ">= 18.12.0" diff --git a/package.json b/package.json index a5a1bd169..cc6dea935 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "strip-ansi": "^6.0.0", "supertest": "^7.0.0", "typescript": "^5.3.3", - "webpack": "^5.93.0" + "webpack": "^5.101.0" }, "peerDependencies": { "webpack": "^5.0.0" diff --git a/src/utils/setupHooks.js b/src/utils/setupHooks.js index 217d48b4f..1701af10f 100644 --- a/src/utils/setupHooks.js +++ b/src/utils/setupHooks.js @@ -109,8 +109,14 @@ function setupHooks(context) { childStatsOptions = normalizeStatsOptions(childStatsOptions); if (typeof childStatsOptions.colors === "undefined") { + const [firstCompiler] = + /** @type {MultiCompiler} */ + (compiler).compilers; childStatsOptions.colors = - require("colorette").isColorSupported; + typeof firstCompiler.webpack.cli.isColorSupported === + "function" + ? firstCompiler.webpack.cli.isColorSupported() + : require("colorette").isColorSupported; } return childStatsOptions; @@ -122,12 +128,21 @@ function setupHooks(context) { ); if (typeof statsOptions.colors === "undefined") { - statsOptions.colors = require("colorette").isColorSupported; + // TODO remove `colorette` and set minimum supported webpack version is `5.101.0` + statsOptions.colors = + typeof ( + /** @type {Compiler} */ + (context.compiler).webpack.cli.isColorSupported + ) === "function" + ? /** @type {Compiler} */ + (context.compiler).webpack.cli.isColorSupported() + : require("colorette").isColorSupported; } } const printedStats = stats.toString( - /** @type {StatsObjectOptions} */ (statsOptions), + /** @type {StatsObjectOptions} */ + (statsOptions), ); // Avoid extra empty line when `stats: 'none'` From 256e535e4200e75337bca1d4ea7398e3645fc88c Mon Sep 17 00:00:00 2001 From: alexander-akait Date: Tue, 29 Jul 2025 14:56:28 +0300 Subject: [PATCH 2/2] refactor: use built-in colors --- src/utils/setupHooks.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/utils/setupHooks.js b/src/utils/setupHooks.js index 1701af10f..f9b14c8de 100644 --- a/src/utils/setupHooks.js +++ b/src/utils/setupHooks.js @@ -112,9 +112,13 @@ function setupHooks(context) { const [firstCompiler] = /** @type {MultiCompiler} */ (compiler).compilers; + + // TODO remove `colorette` and set minimum supported webpack version is `5.101.0` childStatsOptions.colors = + typeof firstCompiler.webpack !== "undefined" && + typeof firstCompiler.webpack.cli !== "undefined" && typeof firstCompiler.webpack.cli.isColorSupported === - "function" + "function" ? firstCompiler.webpack.cli.isColorSupported() : require("colorette").isColorSupported; } @@ -128,14 +132,13 @@ function setupHooks(context) { ); if (typeof statsOptions.colors === "undefined") { + const { compiler } = /** @type {{ compiler: Compiler }} */ (context); // TODO remove `colorette` and set minimum supported webpack version is `5.101.0` statsOptions.colors = - typeof ( - /** @type {Compiler} */ - (context.compiler).webpack.cli.isColorSupported - ) === "function" - ? /** @type {Compiler} */ - (context.compiler).webpack.cli.isColorSupported() + typeof compiler.webpack !== "undefined" && + typeof compiler.webpack.cli !== "undefined" && + typeof compiler.webpack.cli.isColorSupported === "function" + ? compiler.webpack.cli.isColorSupported() : require("colorette").isColorSupported; } }