mirror of
https://github.com/denoland/deno.git
synced 2025-10-01 22:51:14 +00:00
fix(cli/console): always quote and escape inspected strings (#7546)
This commit is contained in:
parent
7845740637
commit
38196f7850
5 changed files with 36 additions and 23 deletions
|
@ -405,7 +405,7 @@
|
|||
|
||||
switch (typeof value) {
|
||||
case "string":
|
||||
return value;
|
||||
return green(quoteString(value));
|
||||
case "number": // Numbers are yellow
|
||||
// Special handling of -0
|
||||
return yellow(Object.is(value, -0) ? "-0" : `${value}`);
|
||||
|
@ -1265,8 +1265,12 @@
|
|||
if (a > 0) {
|
||||
string += " ";
|
||||
}
|
||||
// Use default maximum depth for null or undefined arguments.
|
||||
string += inspectValue(args[a], new Set(), 0, rInspectOptions);
|
||||
if (typeof args[a] == "string") {
|
||||
string += args[a];
|
||||
} else {
|
||||
// Use default maximum depth for null or undefined arguments.
|
||||
string += inspectValue(args[a], new Set(), 0, rInspectOptions);
|
||||
}
|
||||
}
|
||||
|
||||
if (rInspectOptions.indentLevel > 0) {
|
||||
|
@ -1543,16 +1547,12 @@
|
|||
value,
|
||||
inspectOptions = {},
|
||||
) {
|
||||
if (typeof value === "string") {
|
||||
return value;
|
||||
} else {
|
||||
return inspectValue(value, new Set(), 0, {
|
||||
...DEFAULT_INSPECT_OPTIONS,
|
||||
...inspectOptions,
|
||||
// TODO(nayeemrmn): Indent level is not supported.
|
||||
indentLevel: 0,
|
||||
});
|
||||
}
|
||||
return inspectValue(value, new Set(), 0, {
|
||||
...DEFAULT_INSPECT_OPTIONS,
|
||||
...inspectOptions,
|
||||
// TODO(nayeemrmn): Indent level is not supported.
|
||||
indentLevel: 0,
|
||||
});
|
||||
}
|
||||
|
||||
// Expose these fields to internalObject for tests.
|
||||
|
|
|
@ -831,7 +831,7 @@ unitTest(function consoleTestWithStringFormatSpecifier(): void {
|
|||
unitTest(function consoleTestWithObjectFormatSpecifier(): void {
|
||||
assertEquals(stringify("%o"), "%o");
|
||||
assertEquals(stringify("%o", 42), "42");
|
||||
assertEquals(stringify("%o", "foo"), "foo");
|
||||
assertEquals(stringify("%o", "foo"), `"foo"`);
|
||||
assertEquals(stringify("o: %o, a: %O", {}, []), "o: {}, a: []");
|
||||
assertEquals(stringify("%o", { a: 42 }), "{ a: 42 }");
|
||||
assertEquals(
|
||||
|
@ -1424,6 +1424,17 @@ unitTest(function consoleTrace(): void {
|
|||
});
|
||||
});
|
||||
|
||||
unitTest(function inspectString(): void {
|
||||
assertEquals(
|
||||
stripColor(Deno.inspect("\0")),
|
||||
`"\\x00"`,
|
||||
);
|
||||
assertEquals(
|
||||
stripColor(Deno.inspect("\x1b[2J")),
|
||||
`"\\x1b[2J"`,
|
||||
);
|
||||
});
|
||||
|
||||
unitTest(function inspectSorted(): void {
|
||||
assertEquals(
|
||||
stripColor(Deno.inspect({ b: 2, a: 1 }, { sorted: true })),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue