From a36292bd7ca372e1fc38977982fb8ae980fbeef4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Fri, 21 Mar 2025 22:30:46 +0900 Subject: [PATCH] fix: uv_tty_init error on Windows (#235) --- .changeset/lemon-monkeys-help.md | 5 +++++ packages/core/src/prompts/prompt.ts | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 .changeset/lemon-monkeys-help.md diff --git a/.changeset/lemon-monkeys-help.md b/.changeset/lemon-monkeys-help.md new file mode 100644 index 0000000..007c2d0 --- /dev/null +++ b/.changeset/lemon-monkeys-help.md @@ -0,0 +1,5 @@ +--- +"@clack/core": patch +--- + +Fix "TTY initialization failed: uv_tty_init returned EBADF (bad file descriptor)" error happening on Windows for non-tty terminals. diff --git a/packages/core/src/prompts/prompt.ts b/packages/core/src/prompts/prompt.ts index a5101dd..c676d1a 100644 --- a/packages/core/src/prompts/prompt.ts +++ b/packages/core/src/prompts/prompt.ts @@ -1,7 +1,7 @@ import { stdin, stdout } from 'node:process'; import readline, { type Key, type ReadLine } from 'node:readline'; -import type { Readable, Writable } from 'node:stream'; -import { WriteStream } from 'node:tty'; +import type { Readable } from 'node:stream'; +import { Writable } from 'node:stream'; import { cursor, erase } from 'sisteransi'; import wrap from 'wrap-ansi'; @@ -133,7 +133,7 @@ export default class Prompt { ); } - const sink = new WriteStream(0); + const sink = new Writable(); sink._write = (chunk, encoding, done) => { if (this._track) { this.value = this.rl?.line.replace(/\t/g, ''); @@ -150,6 +150,7 @@ export default class Prompt { tabSize: 2, prompt: '', escapeCodeTimeout: 50, + terminal: true, }); readline.emitKeypressEvents(this.input, this.rl); this.rl.prompt(); -- 2.51.2