Intro
This Transform takes Buffers and emits Maps of CSV Rows.
It's very fast and it's csv-spectrum compliant.
This is bloody alpha. Feel free to try it out.
Usage
- This only supports utf8. Other formats have to be converted before. (e.g. by iconv-lite)
- Stick to the listed options
Available Options:
{
colDelimiter: string,
colEscape: string,
escapeChar: string,
rowDelimiter: string,
header: boolean
}
The object given to the Parser just override fields of this
. You should not set unlisted fields, but I can't stop you either. Just don't complain about breaking changes.
An example from the csv-spectrum test suite:
import Parser from "./src/parser";
import { Readable, Writable } from "stream";
const parser = new Parser({
colDelimiter: ",",
colEscape: "\"",
rowDelimiter: "\n",
escapeChar: null,
header: true
});
const readable = new Readable;
const writable = new Writable({
objectMode: true,
write(data, _, next) {
console.log(data);
}
});
readable
.pipe(parser)
.pipe(writable);
readable.push(Buffer.from('first,last,address,city,zip\nJohn,Doe,120 any st.,"Anytown, WW",08123'), "utf8");
readable.push(null);
Known Bugs
I'm not yet sure if header: false works e5241520977225aa984175215d070e5c23601464