'use strict'

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 = ''
  }
}
