csvrow
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/csvrow package

1.0.0 • Public • Published

This is a small node module for parsing individual CSV rows. This can be useful if you have, say, a user-provided string that is a "comma-separated" set of strings. Simply splitting on commas doesn't quite suffice.

It has been a little while, but when I last looked, existing node.js CSV modules didn't make it straightforward to just parse a single row of CSV data synchronously.

Follow @trentmick for updates to this module.

Installation

npm install csvrow

This is also a single node.js module (lib/csvrow.js) with no external deps, so you can alternatively just grab that file.

Usage

Typical parsing as you'd expect:

> var csvrow = require('csvrow');
> csvrow.parse('a,b,c')
[ 'a', 'b', 'c' ]
> csvrow.parse(' a, b,, d')
[ 'a', 'b', '', 'd' ]

And the reverse (stringifying):

> csvrow.stringify(['a', 'b', 'c'])
'a,b,c'
> csvrow.stringify(['a', 'space y', 'c'])
'a,"space y",c'

parse and stringify should always cycle to the same value, including with some weird edge cases. See the test suite and http://en.wikipedia.org/wiki/Comma-separated_values.

There is also a "normalize" function to get rid of spacing and empty columns:

> csvrow.normalize('a, b, , d')
'a,b,d'

Note: dropping empty entries might not be what you want. Patches welcome to make that optional.

Testing

npm test   # tests with first node version on the path

Versioning

The scheme I follow is most succintly described by the bootstrap guys here.

tl;dr: All versions are <major>.<minor>.<patch> which will be incremented for breaking backward compat and major reworks, new features without breaking change, and bug fixes, respectively.

License

MIT.

Dependencies (0)

    Dev Dependencies (5)

    Package Sidebar

    Install

    npm i csvrow

    Weekly Downloads

    343

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    9.65 kB

    Total Files

    5

    Last publish

    Collaborators

    • trentm