travel/admin/node_modules/get-stdin/index.js

53 lines
754 B
JavaScript

'use strict';
const stdin = process.stdin;
module.exports = () => {
let ret = '';
return new Promise(resolve => {
if (stdin.isTTY) {
resolve(ret);
return;
}
stdin.setEncoding('utf8');
stdin.on('readable', () => {
let chunk;
while ((chunk = stdin.read())) {
ret += chunk;
}
});
stdin.on('end', () => {
resolve(ret);
});
});
};
module.exports.buffer = () => {
const ret = [];
let len = 0;
return new Promise(resolve => {
if (stdin.isTTY) {
resolve(Buffer.concat([]));
return;
}
stdin.on('readable', () => {
let chunk;
while ((chunk = stdin.read())) {
ret.push(chunk);
len += chunk.length;
}
});
stdin.on('end', () => {
resolve(Buffer.concat(ret, len));
});
});
};