| var through = require('through'); |
| var fs = require('fs'); |
| |
| module.exports = function () { |
| var line = ''; |
| var stream = through(write, flush); |
| return stream; |
| |
| function write (buf) { |
| for (var i = 0; i < buf.length; i++) { |
| var c = typeof buf === 'string' |
| ? buf.charAt(i) |
| : String.fromCharCode(buf[i]) |
| ; |
| if (c === '\n') flush(); |
| else line += c; |
| } |
| } |
| |
| function flush () { |
| if (fs.writeSync && /^win/.test(process.platform)) { |
| try { fs.writeSync(1, line + '\n'); } |
| catch (e) { stream.emit('error', e) } |
| } else { |
| try { console.log(line) } |
| catch (e) { stream.emit('error', e) } |
| } |
| line = ''; |
| } |
| }; |