UNPKG

@csvw-rdf-convertor/core

Version:

This library was generated with [Nx](https://nx.dev).

65 lines (64 loc) 2.76 kB
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