0.1.4 • Published 5 years ago

x3-parser-csv v0.1.4

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

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:

{
	// Separates columns
	colDelimiter: string,
	// Surrounds column content
	colEscape: string,
	// Escapes chars within column content
	escapeChar: string,
	// Separates rows
	rowDelimiter: string,
	// Enables or disables headers
	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) {
		// data is now:
		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
0.1.4

5 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago