@@ -37,26 +37,27 @@ function asDataGroup(group: IDataGroup): DataGroup {
3737}
3838
3939export default function importCSV ( file : File , fileContent : string , options : CSVOptions ) : DataGroup {
40- let lines = '' ;
40+ const lines : string [ ] = [ ] ;
4141 for ( const row of fileContent . split ( '\n' ) ) {
4242 const trimmed = row . trim ( ) ;
4343 if ( trimmed [ 0 ] === '#' ) {
4444 continue ;
4545 }
46- lines += trimmed ;
46+ lines . push ( trimmed ) ;
4747 }
48- let rows = csvParseRows ( lines ) ;
48+ let rows = csvParseRows ( lines . join ( '\n' ) ) ;
4949 let numColumns = rows . reduce ( ( acc , v ) => Math . max ( acc , v . length ) , 0 ) ;
5050 if ( options . transpose ) {
5151 numColumns = rows . length ;
5252 rows = transpose ( rows , numColumns ) ;
5353 }
5454
55- let labels = Array ( numColumns ) . map ( ( _ , i ) => `Column ${ i } ` ) ;
55+ let labels = Array ( numColumns )
56+ . fill ( 0 )
57+ . map ( ( _ , i ) => `Column ${ i } ` ) ;
5658
5759 let groups : { label : string ; level : number ; rows : string [ ] [ ] } [ ] = [ { label : file . name , level : 0 , rows : [ ] } ] ;
5860 let activeGroup = groups [ 0 ] ;
59- groups . push ( activeGroup ) ;
6061
6162 let foundHeader = false ;
6263 for ( const row of rows ) {
@@ -207,7 +208,7 @@ function parseDate(values: string[], lineIndex: number, options: CSVOptions): Ep
207208 }
208209 return new EpiDate ( 2000 , 1 , 1 ) . addDays ( lineIndex ) ;
209210 } catch ( error ) {
210- console . error ( 'invalid date in row' , values , options ) ;
211+ console . error ( 'invalid date in row' , values , options , error ) ;
211212 return null ;
212213 }
213214}
0 commit comments