Server IP : 66.29.132.124 / Your IP : 3.147.126.199 Web Server : LiteSpeed System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : wavevlvu ( 1524) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/alt-nodejs19/root/usr/lib/node_modules/npm/node_modules.bundled/read/lib/ |
Upload File : |
const readline = require('readline') const Mute = require('mute-stream') module.exports = async function read ({ default: def = '', input = process.stdin, output = process.stdout, prompt = '', silent, timeout, edit, terminal, replace, }) { if (typeof def !== 'undefined' && typeof def !== 'string' && typeof def !== 'number') { throw new Error('default value must be string or number') } let editDef = false prompt = prompt.trim() + ' ' terminal = !!(terminal || output.isTTY) if (def) { if (silent) { prompt += '(<default hidden>) ' } else if (edit) { editDef = true } else { prompt += '(' + def + ') ' } } const m = new Mute({ replace, prompt }) m.pipe(output, { end: false }) output = m return new Promise((resolve, reject) => { const rl = readline.createInterface({ input, output, terminal }) const timer = timeout && setTimeout(() => onError(new Error('timed out')), timeout) output.unmute() rl.setPrompt(prompt) rl.prompt() if (silent) { output.mute() } else if (editDef) { rl.line = def rl.cursor = def.length rl._refreshLine() } const done = () => { rl.close() clearTimeout(timer) output.mute() output.end() } const onError = (er) => { done() reject(er) } rl.on('error', onError) rl.on('line', (line) => { if (silent && terminal) { output.unmute() output.write('\r\n') } done() // truncate the \n at the end. const res = line.replace(/\r?\n$/, '') || def || '' return resolve(res) }) rl.on('SIGINT', () => { rl.close() onError(new Error('canceled')) }) }) }