From bcc755206e8f1bb8ae1658d4f8b34cf82c3923c5 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Wed, 7 Feb 2024 21:56:17 +1100 Subject: [PATCH] refactor(ansi,prompt)!: remove use of `Deno.isatty()` and `rid` (#672) This commit removes the `rid` property from the `reader` option and replaces the `isTty` method with the `isTerminal` method. --- ansi/cursor_position.ts | 2 +- ansi/tty.ts | 2 +- prompt/_generic_prompt.ts | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ansi/cursor_position.ts b/ansi/cursor_position.ts index 4d568a42..fa3a9bf8 100644 --- a/ansi/cursor_position.ts +++ b/ansi/cursor_position.ts @@ -10,8 +10,8 @@ export interface Cursor { export interface CursorPositionOptions { writer?: Deno.WriterSync; reader?: Deno.ReaderSync & { - readonly rid: number; setRaw(mode: boolean, options?: Deno.SetRawOptions): void; + isTerminal(): boolean; }; } diff --git a/ansi/tty.ts b/ansi/tty.ts index e4dc6904..e1c72792 100644 --- a/ansi/tty.ts +++ b/ansi/tty.ts @@ -6,8 +6,8 @@ import { Cursor, getCursorPosition } from "./cursor_position.ts"; export interface TtyOptions { writer?: Deno.WriterSync; reader?: Deno.ReaderSync & { - readonly rid: number; setRaw(mode: boolean, options?: Deno.SetRawOptions): void; + isTerminal(): boolean; }; } diff --git a/prompt/_generic_prompt.ts b/prompt/_generic_prompt.ts index 0709ad35..70b58a6a 100644 --- a/prompt/_generic_prompt.ts +++ b/prompt/_generic_prompt.ts @@ -71,8 +71,8 @@ export interface GenericPromptOptions { prefix?: string; /** Change the prompt input stream. */ reader?: Deno.Reader & { - readonly rid: number; setRaw(mode: boolean, options?: Deno.SetRawOptions): void; + isTerminal(): boolean; }; /** Change the prompt output stream. */ writer?: Deno.WriterSync; @@ -87,8 +87,8 @@ export interface GenericPromptSettings cbreak: boolean; tty: Tty; reader: Deno.Reader & { - readonly rid: number; setRaw(mode: boolean, options?: Deno.SetRawOptions): void; + isTerminal(): boolean; }; writer: Deno.WriterSync; } @@ -356,7 +356,7 @@ export abstract class GenericPrompt< /** Read user input from stdin. */ #readChar = async (): Promise => { const buffer = new Uint8Array(8); - const isTty = Deno.isatty(this.settings.reader.rid); + const isTty = this.settings.reader.isTerminal(); if (isTty) { this.settings.reader.setRaw(