Fix colors detect for logger (#17455)
This commit is contained in:
1 parent
98a06cd5b9
commit
953a8cc6dd
1 file changed
+18
-1
+18
-1
@@ -1,6 +1,22 @@
|
||||
import mockable from "./mockable.js";
|
||||
import { picocolors } from "./prettier-internal.js";
|
||||
|
||||
const { argv, env } = process;
|
||||
// https://github.com/alexeyraspopov/picocolors/blob/0e7c4af2de299dd7bc5916f2bddd151fa2f66740/picocolors.js#L2
|
||||
// Not working on Windows, but this is how `picocolors` works for stdout, let's keep it this way for now
|
||||
const isStderrColorSupported =
|
||||
!(Boolean(env.NO_COLOR) || argv.includes("--no-color")) &&
|
||||
(Boolean(env.FORCE_COLOR) ||
|
||||
argv.includes("--color") ||
|
||||
process.platform === "win32" ||
|
||||
(process.stderr.isTTY && env.TERM !== "dumb") ||
|
||||
Boolean(env.CI));
|
||||
// To test this feature,
|
||||
// run `echo foo | node bin/prettier --unknown-flag --log-level=debug 2>error.log`
|
||||
// open error.log check if `[warn]` or `[debug]` is colored
|
||||
// https://github.com/prettier/prettier/issues/13097
|
||||
const picocolorsStderr = picocolors.createColors(isStderrColorSupported);
|
||||
|
||||
const emptyLogResult = { clear() {} };
|
||||
function createLogger(logLevel = "log") {
|
||||
return {
|
||||
@@ -17,7 +33,8 @@ function createLogger(logLevel = "log") {
|
||||
}
|
||||
|
||||
const stream = process[loggerName === "log" ? "stdout" : "stderr"];
|
||||
const prefix = color ? `[${picocolors[color](loggerName)}] ` : "";
|
||||
const colors = loggerName === "log" ? picocolors : picocolorsStderr;
|
||||
const prefix = color ? `[${colors[color](loggerName)}] ` : "";
|
||||
|
||||
return (message, options) => {
|
||||
options = {
|
||||
|
||||
Reference in new issue
Block a user