@csvw-rdf-convertor/core
Version:
This library was generated with [Nx](https://nx.dev).
65 lines (64 loc) • 2.76 kB
JavaScript
import { parse } from 'csv/browser/esm';
export class CSVParser extends TransformStream {
static initCSVParser(dialect) {
var _dialect_trim;
const trim = (_dialect_trim = dialect.trim) != null ? _dialect_trim : dialect.skipInitialSpace ? 'start' : false;
var _dialect_commentPrefix, _dialect_delimiter, _dialect_doubleQuote, _dialect_encoding, _dialect_skipRows, _dialect_lineTerminators, _dialect_quoteChar, _dialect_skipBlankRows;
return parse({
cast: false,
comment: (_dialect_commentPrefix = dialect.commentPrefix) != null ? _dialect_commentPrefix : '#',
delimiter: (_dialect_delimiter = dialect.delimiter) != null ? _dialect_delimiter : ',',
escape: ((_dialect_doubleQuote = dialect.doubleQuote) != null ? _dialect_doubleQuote : true) ? '"' : '\\',
encoding: (_dialect_encoding = dialect.encoding) != null ? _dialect_encoding : 'utf-8',
columns: undefined,
from_line: ((_dialect_skipRows = dialect.skipRows) != null ? _dialect_skipRows : 0) + 1,
record_delimiter: (_dialect_lineTerminators = dialect.lineTerminators) != null ? _dialect_lineTerminators : [
'\r\n',
'\n'
],
quote: (_dialect_quoteChar = dialect.quoteChar) != null ? _dialect_quoteChar : '"',
skip_empty_lines: (_dialect_skipBlankRows = dialect.skipBlankRows) != null ? _dialect_skipBlankRows : false,
ltrim: [
'start',
'true',
true
].includes(trim),
rtrim: [
'end',
'true',
true
].includes(trim),
on_record: dialect.skipColumns ? (record)=>record.slice(dialect.skipColumns) : undefined
});
}
static createTransformer(dialect) {
const parser = this.initCSVParser(dialect);
return {
start (controller) {
parser.on('readable', ()=>{
let record;
while(record = parser.read()){
controller.enqueue(record);
record = parser.read();
}
});
parser.on('error', (error)=>{
controller.error(error);
});
parser.on('end', ()=>{
controller.terminate();
});
},
transform (chunk) {
parser.write(chunk);
},
flush () {
parser.end();
}
};
}
constructor(dialect){
super(CSVParser.createTransformer(dialect));
}
}
//# sourceMappingURL=csv-parser.js.map