Nietzsche's Preposterous Moustache

    csv-parse
    TypeScript icon, indicating that this package has built-in type declarations

    5.0.3 • Public • Published

    CSV parser for Node.js and the web

    Build Status NPM NPM

    The csv-parse package is a parser converting CSV text input into arrays or objects. It is part of the CSV project.

    It implements the Node.js stream.Transform API. It also provides a simple callback-based API for convenience. It is both extremely easy to use and powerful. It was first released in 2010 and is used against big data sets by a large community.

    Documentation

    Main features

    • Flexible with lot of options
    • Multiple distributions: Node.js, Web, ECMAScript modules and CommonJS
    • Follow the Node.js streaming API
    • Simplicity with the optional callback API
    • Support delimiters, quotes, escape characters and comments
    • Line breaks discovery
    • Support big datasets
    • Complete test coverage and lot of samples for inspiration
    • No external dependencies
    • Work nicely with the csv-generate, stream-transform and csv-stringify packages
    • MIT License

    Usage

    Run npm install csv to install the full csv module or run npm install csv-parse if you are only interested by the CSV parser.

    Use the callback and sync APIs for simplicity or the stream based API for scalability.

    Example

    The API is available in multiple flavors. This example illustrates the stream API.

    import assert from 'assert';
    import { parse } from 'csv-parse';
    
    const records = [];
    // Initialize the parser
    const parser = parse({
      delimiter: ':'
    });
    // Use the readable stream api to consume records
    parser.on('readable', function(){
      let record;
      while ((record = parser.read()) !== null) {
        records.push(record);
      }
    });
    // Catch any error
    parser.on('error', function(err){
      console.error(err.message);
    });
    // Test that the parsed records matched the expected records
    parser.on('end', function(){
      assert.deepStrictEqual(
        records,
        [
          [ 'root','x','0','0','root','/root','/bin/bash' ],
          [ 'someone','x','1022','1022','','/home/someone','/bin/bash' ]
        ]
      );
    });
    // Write data to the stream
    parser.write("root:x:0:0:root:/root:/bin/bash\n");
    parser.write("someone:x:1022:1022::/home/someone:/bin/bash\n");
    // Close the readable stream
    parser.end();

    Contributors

    The project is sponsored by Adaltas, an Big Data consulting firm based in Paris, France.

    Install

    npm i csv-parse

    DownloadsWeekly Downloads

    1,811,014

    Version

    5.0.3

    License

    MIT

    Unpacked Size

    1.6 MB

    Total Files

    20

    Last publish

    Collaborators

    • david