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.
42 lines
861 B
42 lines
861 B
|
|
|
|
//i saw bugs with streams to stdout not ending correctly. |
|
//if there was a pause, it would not. |
|
|
|
|
|
var cp = require('child_process') |
|
var toPull = require('../') |
|
var pull = require('pull-stream') |
|
var split = require('pull-split') |
|
|
|
|
|
console.log(process.execPath, [require.resolve('./stdout')]) |
|
var child = cp.spawn(process.execPath, [require.resolve('./stdout')]) |
|
child.on('exit', function () { |
|
console.log('ended') |
|
}) |
|
pull( |
|
toPull.source(child.stdout), |
|
split('\n\n'), |
|
pull.filter(), |
|
pull.map(function (e) { |
|
try { |
|
return JSON.parse(e) |
|
} catch (err) { |
|
console.log(JSON.stringify(e)) |
|
//throw err |
|
} |
|
|
|
}), |
|
pull.asyncMap(function (data, cb) { |
|
setTimeout(function () { |
|
cb(null, data) |
|
}, 10) |
|
}), |
|
pull.drain(null, function (err) { |
|
console.log('DONE') |
|
if(err) throw err |
|
console.log('done') |
|
}) |
|
) |
|
|
|
|