summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/node/polyfills/_process/streams.mjs9
-rw-r--r--tests/unit_node/process_test.ts5
2 files changed, 12 insertions, 2 deletions
diff --git a/ext/node/polyfills/_process/streams.mjs b/ext/node/polyfills/_process/streams.mjs
index 7936e82aa..3573956c9 100644
--- a/ext/node/polyfills/_process/streams.mjs
+++ b/ext/node/polyfills/_process/streams.mjs
@@ -66,14 +66,19 @@ export function createWritableStdioStream(writer, name, warmup = false) {
// We cannot call `writer?.isTerminal()` eagerly here
let getIsTTY = () => writer?.isTerminal();
+ const getColumns = () =>
+ stream._columns ||
+ (writer?.isTerminal() ? Deno.consoleSize?.().columns : undefined);
ObjectDefineProperties(stream, {
columns: {
__proto__: null,
enumerable: true,
configurable: true,
- get: () =>
- writer?.isTerminal() ? Deno.consoleSize?.().columns : undefined,
+ get: () => getColumns(),
+ set: (value) => {
+ stream._columns = value;
+ },
},
rows: {
__proto__: null,
diff --git a/tests/unit_node/process_test.ts b/tests/unit_node/process_test.ts
index 0e0f169d6..9506fb609 100644
--- a/tests/unit_node/process_test.ts
+++ b/tests/unit_node/process_test.ts
@@ -1175,3 +1175,8 @@ Deno.test("process.cpuUsage()", () => {
assert(typeof cpuUsage.user === "number");
assert(typeof cpuUsage.system === "number");
});
+
+Deno.test("process.stdout.columns writable", () => {
+ process.stdout.columns = 80;
+ assertEquals(process.stdout.columns, 80);
+});