| 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() |