setup-python/node_modules/get-stdin/index.js

53 lines
780 B
JavaScript
Raw Normal View History

2019-06-26 21:12:00 -04:00
'use strict';
const {stdin} = process;
module.exports = () => {
let result = '';
return new Promise(resolve => {
if (stdin.isTTY) {
resolve(result);
return;
}
stdin.setEncoding('utf8');
stdin.on('readable', () => {
let chunk;
while ((chunk = stdin.read())) {
result += chunk;
}
});
stdin.on('end', () => {
resolve(result);
});
});
};
module.exports.buffer = () => {
const result = [];
let length = 0;
return new Promise(resolve => {
if (stdin.isTTY) {
resolve(Buffer.concat([]));
return;
}
stdin.on('readable', () => {
let chunk;
while ((chunk = stdin.read())) {
result.push(chunk);
length += chunk.length;
}
});
stdin.on('end', () => {
resolve(Buffer.concat(result, length));
});
});
};