MCPcopy Create free account
hub / github.com/prettier/prettier / createLogger

Function createLogger

src/cli/logger.js:21–80  ·  view source on GitHub ↗
(logLevel = "log")

Source from the content-addressed store, hash-verified

19
20const emptyLogResult = { clear() {} };
21function createLogger(logLevel = "log") {
22 return {
23 logLevel,
24 warn: createLogFunc("warn", "yellow"),
25 error: createLogFunc("error", "red"),
26 debug: createLogFunc("debug", "blue"),
27 log: createLogFunc("log"),
28 };
29
30 function createLogFunc(loggerName, color) {
31 if (!shouldLog(loggerName)) {
32 return () => emptyLogResult;
33 }
34
35 const stream = process[loggerName === "log" ? "stdout" : "stderr"];
36 const colors = loggerName === "log" ? picocolors : picocolorsStderr;
37 const prefix = color ? `[${colors[color](loggerName)}] ` : "";
38
39 return (message, options) => {
40 options = {
41 newline: true,
42 clearable: false,
43 ...options,
44 };
45 message =
46 message.replaceAll(/^/gm, prefix) + (options.newline ? "\n" : "");
47 stream.write(message);
48
49 if (options.clearable) {
50 return {
51 clear: () => mockable.clearStreamText(stream, message),
52 };
53 }
54 };
55 }
56
57 function shouldLog(loggerName) {
58 switch (logLevel) {
59 case "silent":
60 return false;
61 case "debug":
62 if (loggerName === "debug") {
63 return true;
64 }
65 // fall through
66 case "log":
67 if (loggerName === "log") {
68 return true;
69 }
70 // fall through
71 case "warn":
72 if (loggerName === "warn") {
73 return true;
74 }
75 // fall through
76 case "error":
77 return loggerName === "error";
78 }

Callers 1

runFunction · 0.85

Calls 1

createLogFuncFunction · 0.85

Tested by

no test coverage detected