@@ -36,6 +36,7 @@ function Converter(params, options) {
3636 this . _needJson = null ;
3737 this . _needEmitResult = null ;
3838 this . _needEmitFinalResult = null ;
39+ this . _needEmitHeader = null ;
3940 this . _needEmitJson = null ;
4041 this . _needPush = null ;
4142 this . _needEmitCsv = null ;
@@ -55,6 +56,9 @@ function Converter(params, options) {
5556 if ( this . _needEmitJson === null ) {
5657 this . _needEmitJson = this . listeners ( "json" ) . length > 0 ;
5758 }
59+ if ( this . _needEmitHeader === null ) {
60+ this . _needEmitHeader = this . listeners ( "header" ) . length > 0 ;
61+ }
5862 if ( this . _needEmitCsv === null ) {
5963 this . _needEmitCsv = this . listeners ( "csv" ) . length > 0 ;
6064 }
@@ -297,6 +301,8 @@ Converter.prototype.processHead = function (fileLine, cb) {
297301 this . workerMgr . setParams ( params ) ;
298302 }
299303 var res = linesToJson ( lines . lines , params , 0 ) ;
304+ // Put the header with the first row
305+ if ( res . length > 0 ) res [ 0 ] . header = params . _headers ;
300306 this . processResult ( res ) ;
301307 this . lastIndex += res . length ;
302308 this . recordNum += res . length ;
@@ -348,6 +354,7 @@ Converter.prototype.processResult = function (result) {
348354
349355Converter . prototype . emitResult = function ( r ) {
350356 var index = r . index ;
357+ var header = r . header ;
351358 var row = r . row ;
352359 var result = r . json ;
353360 var resultJson = null ;
@@ -367,6 +374,9 @@ Converter.prototype.emitResult = function (r) {
367374 this . transform ( resultJson , row , index ) ;
368375 resultStr = null ;
369376 }
377+ if ( this . _needEmitHeader && header ) {
378+ this . emit ( "header" , header ) ;
379+ }
370380 if ( this . _needEmitJson ) {
371381 this . emit ( "json" , resultJson , index ) ;
372382 }
0 commit comments