UNPKG

@bitblit/asyncglk

Version:
39 lines (35 loc) 802 B
/* Shared cheap-mode stdio ======================= Copyright (c) 2022 Dannii Willis MIT licenced https://github.com/curiousdannii/asyncglk */ import MuteStream from 'mute-stream'; import readline from 'readline'; // A memoized instance let instance; export function get_stdio() { if (instance) { return instance; } const stdin = process.stdin; // Prepare to receive input events if (stdin.isTTY) { stdin.setRawMode(true); } const stdout = new MuteStream(); stdout.pipe(process.stdout); const rl = readline.createInterface({ input: stdin, output: stdout, prompt: '', }); readline.emitKeypressEvents(stdin); instance = { rl: rl, stdin: stdin, stdout: stdout, }; return instance; }