1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-11 00:21:05 -05:00

Reland feat(cli/console): inspect with colors regardless of Deno.noColor (#7976)

This commit is contained in:
Bartek Iwańczuk 2020-10-15 12:32:03 +02:00 committed by GitHub
parent 81635c59e6
commit bd0c64b9ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 13 deletions

View file

@ -378,7 +378,7 @@ pub async fn run(
"Runtime.callFunctionOn",
Some(json!({
"executionContextId": context_id,
"functionDeclaration": "function (object) { return Deno[Deno.internal].inspectArgs(['%o', object], { colors: true}); }",
"functionDeclaration": "function (object) { return Deno[Deno.internal].inspectArgs(['%o', object], { colors: !Deno.noColor }); }",
"arguments": [
evaluate_result,
],

View file

@ -10,9 +10,7 @@
}
function run(str, code) {
return !globalThis || !globalThis.Deno || globalThis.Deno.noColor
? str
: `${code.open}${str.replace(code.regexp, code.open)}${code.close}`;
return `${code.open}${str.replace(code.regexp, code.open)}${code.close}`;
}
function bold(str) {
@ -72,6 +70,10 @@
return string.replace(ANSI_PATTERN, "");
}
function maybeColor(fn) {
return !(globalThis.Deno?.noColor ?? false) ? fn : (s) => s;
}
window.__bootstrap.colors = {
bold,
italic,
@ -85,5 +87,6 @@
magenta,
dim,
stripColor,
maybeColor,
};
})(this);

View file

@ -1425,10 +1425,12 @@
const timerMap = new Map();
const isConsoleInstance = Symbol("isConsoleInstance");
const CONSOLE_INSPECT_OPTIONS = {
...DEFAULT_INSPECT_OPTIONS,
colors: true,
};
function getConsoleInspectOptions() {
return {
...DEFAULT_INSPECT_OPTIONS,
colors: !(globalThis.Deno?.noColor ?? false),
};
}
class Console {
#printFunc = null;
@ -1451,7 +1453,7 @@
log = (...args) => {
this.#printFunc(
inspectArgs(args, {
...CONSOLE_INSPECT_OPTIONS,
...getConsoleInspectOptions(),
indentLevel: this.indentLevel,
}) + "\n",
false,
@ -1463,7 +1465,8 @@
dir = (obj, options = {}) => {
this.#printFunc(
inspectArgs([obj], { ...CONSOLE_INSPECT_OPTIONS, ...options }) + "\n",
inspectArgs([obj], { ...getConsoleInspectOptions(), ...options }) +
"\n",
false,
);
};
@ -1473,7 +1476,7 @@
warn = (...args) => {
this.#printFunc(
inspectArgs(args, {
...CONSOLE_INSPECT_OPTIONS,
...getConsoleInspectOptions(),
indentLevel: this.indentLevel,
}) + "\n",
true,
@ -1679,7 +1682,7 @@
trace = (...args) => {
const message = inspectArgs(
args,
{ ...CONSOLE_INSPECT_OPTIONS, indentLevel: 0 },
{ ...getConsoleInspectOptions(), indentLevel: 0 },
);
const err = {
name: "Trace",

View file

@ -2,7 +2,7 @@
((window) => {
const core = window.Deno.core;
const { gray, green, italic, red, yellow } = window.__bootstrap.colors;
const colors = window.__bootstrap.colors;
const { exit } = window.__bootstrap.os;
const { Console, inspectArgs } = window.__bootstrap.console;
const { stdout } = window.__bootstrap.files;
@ -19,6 +19,8 @@
}
function formatDuration(time = 0) {
const gray = colors.maybeColor(colors.gray);
const italic = colors.maybeColor(colors.italic);
const timeStr = `(${time}ms)`;
return gray(italic(timeStr));
}
@ -139,6 +141,9 @@ finishing test case.`;
}
function reportToConsole(message) {
const green = colors.maybeColor(colors.green);
const red = colors.maybeColor(colors.red);
const yellow = colors.maybeColor(colors.yellow);
const redFailed = red("FAILED");
const greenOk = green("ok");
const yellowIgnored = yellow("ignored");