diff --git a/index.js b/index.js index b3bd8b4..97b6793 100755 --- a/index.js +++ b/index.js @@ -4,7 +4,7 @@ const _ = require('ramda'); const fs = require('fs'); - +const buffer = require('buffer'); const validOpts = opts => { if(!opts || !opts.commands) return true; @@ -19,22 +19,23 @@ module.exports.load = opts => { if(!validOpts(opts)) return false; if (process.stdin.isTTY) return false; - const BUFSIZE = 65536; + const BUFSIZE = buffer.kMaxLength; let nbytes = 0; let chunks = []; - let buffer = ''; + let buf = ''; while(true) { try { - buffer = Buffer.alloc(BUFSIZE); - nbytes = fs.readSync(0, buffer, 0, BUFSIZE, null); + buf = Buffer.alloc(BUFSIZE); + nbytes = fs.readSync(0, buf, 0, BUFSIZE, null); } catch (e) { + if (e.code == 'EOF') break if (e.code != 'EAGAIN') throw e; }; if (nbytes === 0) break; - chunks.push(buffer.slice(0, nbytes)); + chunks.push(buf.slice(0, nbytes)); }; const stdin = Buffer.concat(chunks).toString();