INNER CODE UNIT · JavaScript

promptPassword

wangshengithub/staticshield · encrypt.js:14

function promptPassword() {
  const stdin = process.stdin;
  const interactive = stdin.isTTY && typeof stdin.setRawMode === 'function';
  process.stderr.write('请输入加密密码: ');
  return new Promise((resolve) => {
    if (!interactive) {
      let buf = '';
      stdin.resume(); stdin.setEncoding('utf8');
      const onData = (d) => { const i = d.indexOf('\n'); if (i >= 0) { buf += d.slice(0, i).replace(/\r$/, ''); cleanup(); process.stderr.write('\n'); resolve(buf); } else buf += d; };
      const onEnd = () => { cleanup(); process.stderr.write('\n'); resolve(buf); };
      const cleanup = () => { stdin.removeListener('data', onData); stdin.removeListener('end', onEnd); stdin.destroy(); };
      stdin.on('data', onData); stdin.on('end', onEnd);
      return;
    }
    const bytes = [];
    stdin.setRawMode(true); stdin.resume();
    const finish = () => { stdin.setRawMode(false); stdin.pause(); stdin.removeListener('data', onData); process.stderr.write('\n'); resolve(Buffer.from(bytes).toString('utf8')); };
    const onData = (chunk) => {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…