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.
44 lines
1023 B
44 lines
1023 B
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()
|
|
|