• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1var JSONStream = require('../')
2  , stream = require('stream')
3  , it = require('it-is')
4
5var output = [ [], [] ]
6
7var parser1 = JSONStream.parse(['docs', /./])
8parser1.on('data', function(data) {
9  output[0].push(data)
10})
11
12var parser2 = JSONStream.parse(['docs', /./])
13parser2.on('data', function(data) {
14  output[1].push(data)
15})
16
17var pending = 2
18function onend () {
19  if (--pending > 0) return
20  it(output).deepEqual([
21    [], [{hello: 'world'}]
22  ])
23  console.error('PASSED')
24}
25parser1.on('end', onend)
26parser2.on('end', onend)
27
28function makeReadableStream() {
29  var readStream = new stream.Stream()
30  readStream.readable = true
31  readStream.write = function (data) { this.emit('data', data) }
32  readStream.end = function (data) { this.emit('end') }
33  return readStream
34}
35
36var emptyArray = makeReadableStream()
37emptyArray.pipe(parser1)
38emptyArray.write('{"docs":[]}')
39emptyArray.end()
40
41var objectArray = makeReadableStream()
42objectArray.pipe(parser2)
43objectArray.write('{"docs":[{"hello":"world"}]}')
44objectArray.end()
45