23 lines
685 B
JavaScript
23 lines
685 B
JavaScript
var splicer = require('../');
|
|
var through = require('through2');
|
|
var JSONStream = require('JSONStream');
|
|
var split = require('split');
|
|
|
|
var headerData = {};
|
|
var headers = through.obj(function (buf, enc, next) {
|
|
var line = buf.toString('utf8');
|
|
if (line === '') {
|
|
this.push(headerData);
|
|
pipeline.splice(1, 1, JSONStream.parse([ 'rows', true ]));
|
|
}
|
|
else {
|
|
var m = /^(\S+):(.+)/.exec(line);
|
|
var key = m && m[1].trim();
|
|
var value = m && m[2].trim();
|
|
if (m) headerData[key] = value;
|
|
}
|
|
next();
|
|
});
|
|
var pipeline = splicer([ split(), headers, JSONStream.stringify() ]);
|
|
process.stdin.pipe(pipeline).pipe(process.stdout);
|