diff options
Diffstat (limited to 'node_modules/get-stdin/index.js')
-rw-r--r-- | node_modules/get-stdin/index.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/get-stdin/index.js b/node_modules/get-stdin/index.js new file mode 100644 index 0000000..b7483e4 --- /dev/null +++ b/node_modules/get-stdin/index.js @@ -0,0 +1,52 @@ +'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)); + }); + }); +}; |