nacholibre / node-readlines

Read large text files line by line (synchronous) for Node.js
MIT License
161 stars 28 forks source link

Does not seem to work with stdin #26

Closed tilman22 closed 4 years ago

tilman22 commented 4 years ago
>cat test_readlines.js
// https://github.com/nacholibre/node-readlines
// Install with "npm install n-readlines"
const lineByLine = require('n-readlines');

let liner;
if (process.argv.length == 3)
    liner = new lineByLine(process.argv[2]);
else
    liner = new lineByLine(/*STDIN_FILENO =*/ 0);

let line;
let lineNumber = 0;
while (line = liner.next()) {
    console.log('Line ' + lineNumber + ': ' + line.toString('ascii'));
    lineNumber++;
}

>cat test_readlines.js | node test_readlines.js
>

>mkfifo testfifo
>cat test_readlines.js > testfifo &
[2] 9359
>node test_readlines.js testfifo
fs.js:733
  var r = binding.read(fd, buffer, offset, length, position);
                  ^

Error: ESPIPE: invalid seek, read
    at Error (native)
    at Object.fs.readSync (fs.js:733:19)
    at LineByLine._readChunk (/home/soti/delme/node_modules/n-readlines/readlines.js:92:28)
    at LineByLine.next (/home/soti/delme/node_modules/n-readlines/readlines.js:130:30)
    at Object.<anonymous> (/home/soti/delme/test_readlines.js:13:21)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
> testfifo
>
nacholibre commented 4 years ago

Currently reading from stdin is not supported.