mirror of
https://github.com/thangisme/notes.git
synced 2024-11-01 03:17:30 -04:00
45 lines
1023 B
JavaScript
45 lines
1023 B
JavaScript
|
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()
|