empty.js 1023 Bytes
var JSONStream = require('../')
  , stream = require('stream')
  , it = require('it-is')

var output = [ [], [] ]

var parser1 = JSONStream.parse(['docs', /./])
parser1.on('data', function(data) {
  output[0].push(data)
})

var parser2 = JSONStream.parse(['docs', /./])
parser2.on('data', function(data) {
  output[1].push(data)
})

var pending = 2
function onend () {
  if (--pending > 0) return
  it(output).deepEqual([
    [], [{hello: 'world'}]
  ])
  console.error('PASSED')
}
parser1.on('end', onend)
parser2.on('end', onend)

function makeReadableStream() {
  var readStream = new stream.Stream()
  readStream.readable = true
  readStream.write = function (data) { this.emit('data', data) }
  readStream.end = function (data) { this.emit('end') }
  return readStream
}

var emptyArray = makeReadableStream()
emptyArray.pipe(parser1)
emptyArray.write('{"docs":[]}')
emptyArray.end()

var objectArray = makeReadableStream()
objectArray.pipe(parser2)
objectArray.write('{"docs":[{"hello":"world"}]}')
objectArray.end()