| var Stream = require("stream") |
| var console = require("console") |
| |
| var NEW_LINE = "\n" |
| |
| module.exports = ConsoleStream |
| |
| function ConsoleStream() { |
| var stream = new Stream() |
| stream.writable = true |
| var buffered = "" |
| |
| stream.write = write |
| stream.destroy = destroy |
| stream.end = end |
| |
| return stream |
| |
| function write(buffer) { |
| var s = buffered + String(buffer) |
| var lines = s.split(NEW_LINE) |
| for (var i = 0; i < lines.length - 1; i++) { |
| console.log(lines[i]) |
| } |
| |
| buffered = lines[i] |
| } |
| |
| function destroy() { |
| stream.writable = false |
| stream.emit("close") |
| } |
| |
| function end(buffer) { |
| if (arguments.length === 1) { |
| stream.write(buffer) |
| } |
| |
| if (buffered) { |
| console.log(buffered) |
| } |
| |
| stream.destroy() |
| } |
| } |