csvbits
v1.0.0
Published
Small CSV parse and stringify toolkit for Node.js with quotes, headers, casting, and transforms
Maintainers
Readme
csvbits
A small CSV toolkit for Node.js: parse, stringify, detect delimiters, and transform rows.
Zero runtime dependencies. Node 18+.
Install
npm install csvbitsQuick start
import { parse, stringify, detectDelimiter, transform } from "csvbits";
parse("name,age\nAda,36\nGrace,85");
// [{ name: "Ada", age: "36" }, { name: "Grace", age: "85" }]
parse('name,age\nAda,"36"\nGrace,85', { cast: true });
// [{ name: "Ada", age: 36 }, { name: "Grace", age: 85 }]
stringify([
{ name: "Ada", city: "London, UK" },
{ name: "Grace", city: "New York" },
]);
// name,city
// Ada,"London, UK"
// Grace,New York
detectDelimiter("a;b;c"); // ";"
transform("n,x\n1,2\n3,4", (row) => ({ n: row.n, doubled: Number(row.x) * 2 }), { cast: true });API
| Function | Purpose |
| --- | --- |
| parse(text, options?) | CSV → array of objects (or arrays) |
| parseRows(text) | CSV → string[][] |
| parseObjects(text) | Lazy object iterator |
| stringify(rows, options?) | Objects/arrays → CSV text |
| iterateRows(text) | Low-level row generator |
| detectDelimiter(sample) | Guess , ; tab \| |
| transform(text, fn) | Parse, map, stringify |
Useful options
delimiter,quoteheaders— provide your own header listcolumns: false— return raw arrayscast: true— coerce numbers/booleans/nullquoteAll,newline,eof
License
MIT
