import type { IInput } from './input'; import { stringFromCharCodes } from '../utils'; export interface IJavaScriptInput { isTerminal(): boolean; readAsync(maxChars: number | null): Promise; } export class JavaScriptInput implements IJavaScriptInput { constructor(readonly input: IInput) {} isTerminal(): boolean { return this.input.isTerminal(); } async readAsync(maxChars: number | null): Promise { const chars = await this.input.readAsync(maxChars); return stringFromCharCodes(chars); } }