You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.js 866B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var Stream = require("stream")
  2. var console = require("console")
  3. var NEW_LINE = "\n"
  4. module.exports = ConsoleStream
  5. function ConsoleStream() {
  6. var stream = new Stream()
  7. stream.writable = true
  8. var buffered = ""
  9. stream.write = write
  10. stream.destroy = destroy
  11. stream.end = end
  12. return stream
  13. function write(buffer) {
  14. var s = buffered + String(buffer)
  15. var lines = s.split(NEW_LINE)
  16. for (var i = 0; i < lines.length - 1; i++) {
  17. console.log(lines[i])
  18. }
  19. buffered = lines[i]
  20. }
  21. function destroy() {
  22. stream.writable = false
  23. stream.emit("close")
  24. }
  25. function end(buffer) {
  26. if (arguments.length === 1) {
  27. stream.write(buffer)
  28. }
  29. if (buffered) {
  30. console.log(buffered)
  31. }
  32. stream.destroy()
  33. }
  34. }