A modern, fast, RFC 4180 compliant parser for JS
npm install @vanillaes/csvCSV is a universal JavaScript CSV parser designed specifically to be simple, fast, and spec compliant.
- RFC Compliant
- ECMAScript Module
- Typescript Compatible
This package works isomorphically in browser and server-side JavaScript
Import directly from the local path or a CDN
``html`
The minified version can be imported from
`html`
Install the package
`sh`
npm install @vanillaes/csv
Import using the module path
`javascript`
import { parse } from '@vanillaes/csv'Usage
Takes a string of CSV data and converts it to a 2 dimensional array of [entries][values]
#### Arguments
`CSV.parse(csv, {options}, reviver(value, row, col)) : [entries][values]`
- csv - the CSV string to parse
- options
- typed - infer types (default false)(value) => value
- reviver1 - a custom function to modify the output (default )
1 Values for row and col are 1-based.
#### Example
`javascript
const csv =
header1,header2,header3
aaa,bbb,ccc
zzz,yyy,xxx;`
const parsed = parse(csv)
console.log(parsed);
> [
> [ "header1", "header2", "header3" ],
> [ "aaa", "bbb", "ccc" ],
> [ "zzz", "yyy", "xxx" ]
> ]
Takes a 2 dimensional array of [entries][values] and converts them to CSV
#### Arguments
`CSV.stringify(array, {options}, replacer(value, row, col)) : string`
- array - the input array to stringify
- options
- eof - add a trailing newline at the end of file (default true)(value) => value
- replacer1 - a custom function to modify the values (default )
1 Values for row and col are 1-based.
#### Example
`javascript``
const data = [
[ "header1", "header2", "header3" ],
[ "aaa", "bbb", "ccc" ],
[ "zzz", "yyy", "xxx" ]
];
const stringified = stringify(data)
console.log(stringified);
> "header1,header2,header3"
> "aaa,bbb,ccc"
> "zzz,yyy,xxx"
Typings are generated from JSDoc using Typescript. They are 100% compatible with VSCode Intellisense and will work seamlessly with Typescript.