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
				
				1.1 KiB
			
		
		
			
		
	
	
					42 lines
				
				1.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Convert input to process stdout
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//implementation
							 | 
						||
| 
								 | 
							
								var Converter = require("../../core/Converter.js");
							 | 
						||
| 
								 | 
							
								function _initConverter(){
							 | 
						||
| 
								 | 
							
								    var csvConverter = new Converter();
							 | 
						||
| 
								 | 
							
								    var started = false;
							 | 
						||
| 
								 | 
							
								    var writeStream = process.stdout;
							 | 
						||
| 
								 | 
							
								    csvConverter.on("record_parsed",function(rowJSON){
							 | 
						||
| 
								 | 
							
								        if (started){
							 | 
						||
| 
								 | 
							
								            writeStream.write(",\n");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        writeStream.write(JSON.stringify(rowJSON));  //write parsed JSON object one by one.
							 | 
						||
| 
								 | 
							
								        if (started === false){
							 | 
						||
| 
								 | 
							
								            started = true;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    writeStream.write("[\n"); //write array symbol
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    csvConverter.on("end_parsed",function(){
							 | 
						||
| 
								 | 
							
								        writeStream.write("\n]"); //end array symbol
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    csvConverter.on("error",function(err){
							 | 
						||
| 
								 | 
							
								        console.error(err);
							 | 
						||
| 
								 | 
							
								        process.exit(-1);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    return csvConverter;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function convertFile(fileName){
							 | 
						||
| 
								 | 
							
								    var csvConverter=_initConverter();
							 | 
						||
| 
								 | 
							
								    csvConverter.from(fileName);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function convertString(csvString){
							 | 
						||
| 
								 | 
							
								    var csvConverter=_initConverter();
							 | 
						||
| 
								 | 
							
								    csvConverter.from(csvString);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								//module interfaces
							 | 
						||
| 
								 | 
							
								module.exports.convertFile = convertFile;
							 | 
						||
| 
								 | 
							
								module.exports.convertString = convertString;
							 |