I'm looking for a more sufficient way (or lib) to parse csv/tsv that contains around 5000 ~ 10000 rows (using it to render a table with cdk virtual scroll for previewing the file). My current implementation is quite banana for that amount of rows.
this.httpClient.get(this.dataSrc, {
headers: {
Accept: 'text/plain'
},
responseType: 'text'
}).subscribe(res => {
// handles tsv or csv content
const lines = res.split(/\r|\n/);
const separator = lines[0].indexOf('\t') !== -1 ? '\t' : ',';
this.parsedCSV = lines.map(l => l.split(separator));
});