CSV is a universal JavaScript CSV parser designed specifically to be simple, fast, and spec compliant.
- RFC Compliant
- ECMAScript Module
- CommonJS Compatible
- Typescript Compatible
npm install @vanillaes/csv
Takes a string of CSV data and converts it to a 2 dimensional array of [entries][values]
CSV.parse(csv, {options}, reviver(value, row, col)) : [entries][values]
- csv - the CSV string to parse
- options
- typed - infer types (default
false
)
- typed - infer types (default
- reviver1 - a custom function to modify the output (default
(value) => value
)
1 Values for row
and col
are 1-based.
import { parse } from '@vanillaes/csv';
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
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
)
- eof - add a trailing newline at the end of file (default
- replacer1 - a custom function to modify the values (default
(value) => value
)
1 Values for row
and col
are 1-based.
import { stringify } from '@vanillaes/csv';
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"
A .cjs
bundle is included for CommonJS compatibility
const CSV = require('@vanillaes/csv');
const csv = // the csv string
const data = CSV.parse(csv);
const CSV = require('@vanillaes/csv');
const data = // the a 2-dimensional array
const csv = CSV.stringify(data);
Typings are generated from JSDoc using Typescript. They are 100% compatible with VSCode Intellisense and will work seamlessly with Typescript.