summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarvin Hagemeister <marvin@deno.com>2024-08-19 17:13:09 +0200
committerGitHub <noreply@github.com>2024-08-19 17:13:09 +0200
commit48701c19f8b2661c7e2cd997e62070d74baa86d0 (patch)
tree5c25a7f8c8d4b51fa7ed2475edb7a8f5ce5f417d
parentc94c5cddb137069640fc9fc61435204d6f63fc5d (diff)
fix(node/tty): fix `tty.WriteStream.hasColor` with different args (#25094)
The check in `tty.WriteStream.prototype.hasColors()` was incorrect leading to the [`yoctocolors`](https://github.com/sindresorhus/yoctocolors) package not printing any colors. Fixes https://github.com/denoland/deno/issues/24407
-rw-r--r--ext/node/polyfills/tty.js5
-rw-r--r--tests/unit_node/tty_test.ts4
2 files changed, 8 insertions, 1 deletions
diff --git a/ext/node/polyfills/tty.js b/ext/node/polyfills/tty.js
index 2e8ecc8e1..e906c5f67 100644
--- a/ext/node/polyfills/tty.js
+++ b/ext/node/polyfills/tty.js
@@ -113,7 +113,10 @@ export class WriteStream extends Socket {
* @returns {boolean}
*/
hasColors(count, env) {
- if (env === undefined && typeof count === "object") {
+ if (
+ env === undefined &&
+ (count === undefined || typeof count === "object" && count !== null)
+ ) {
env = count;
count = 16;
}
diff --git a/tests/unit_node/tty_test.ts b/tests/unit_node/tty_test.ts
index ab3193f4a..7f0395682 100644
--- a/tests/unit_node/tty_test.ts
+++ b/tests/unit_node/tty_test.ts
@@ -38,6 +38,10 @@ Deno.test("[node/tty WriteStream.isTTY] returns true when fd is a tty", () => {
Deno.test("[node/tty WriteStream.hasColors] returns true when colors are supported", () => {
assert(tty.WriteStream.prototype.hasColors() === !Deno.noColor);
+ assert(tty.WriteStream.prototype.hasColors({}) === !Deno.noColor);
+
+ assert(tty.WriteStream.prototype.hasColors(1));
+ assert(tty.WriteStream.prototype.hasColors(1, {}));
});
Deno.test("[node/tty WriteStream.getColorDepth] returns current terminal color depth", () => {