Socket
Socket
Sign inDemoInstall

csv-generate

Package Overview
Dependencies
0
Maintainers
1
Versions
47
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    csv-generate

CSV and object generation implementing the Node.js `stream.Readable` API


Version published
Weekly downloads
1.1M
decreased by-20.79%
Maintainers
1
Created
Weekly downloads
 

Package description

What is csv-generate?

The csv-generate package is a simple and powerful tool for generating CSV data programmatically. It is part of the CSV module suite for Node.js, designed to work with streams and provide a flexible means of generating CSV files with custom settings. This package can be particularly useful for testing, data generation, and simulation purposes.

What are csv-generate's main functionalities?

Synchronous Data Generation

Generate CSV data synchronously. This is useful for small datasets that can be generated and used on the fly without the need for asynchronous handling.

const generate = require('csv-generate');
let output = generate({length: 2});
console.log(output);

Asynchronous Stream Generation

Generate CSV data asynchronously using streams. This method is suitable for larger datasets or when the data generation process is part of a larger, asynchronous workflow.

const generate = require('csv-generate');
const generator = generate({length: 20, objectMode: true});
generator.on('readable', function(){
  let row;
  while ((row = generator.read()) !== null) {
    console.log(row);
  }
});

Custom Column Options

Customize the columns of the generated CSV data. This feature allows for specifying the type of data each column should contain, providing flexibility in the structure of the generated data.

const generate = require('csv-generate');
const output = generate({columns: ['int', 'bool'], length: 2});
console.log(output);

Other packages similar to csv-generate

Readme

Source

Build Status

CSV and object generation

This package provides a flexible generator of CSV strings and Javascript objects implementing the Node.js stream.Readable API.

Documentation for the "csv-generate" package is available here.

Features includes:

  • random or pseudo-random seed based generation
  • stream.Readable implementation
  • BSD License

Usage

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

Use the callback style API for simplicity or the stream based API for scalability.

Using the callback API

The parser receive a string and return an array inside a user-provided callback. This example is available with the command node samples/callback.js.

var generate = require('csv-generate');

generate({seed: 1, columns: 2, length: 2}, function(err, output){
  output.should.eql('OMH,ONKCHhJmjadoA\nD,GeACHiN');
});

Using the stream API

// node samples/stream.js
var generate = require('csv-generate');

var data = []
var generator = generate({seed: 1, objectMode: true, columns: 2, length: 2});
generator.on('readable', function(){
  while(d = generator.read()){
    data.push(d);
  }
});
generator.on('error', function(err){
  console.log(err);
});
generator.on('end', function(){
  data.should.eql([ [ 'OMH', 'ONKCHhJmjadoA' ],[ 'D', 'GeACHiN' ] ]);
});

Using the pipe function

One usefull function part of the Stream API is pipe to interact between multiple streams. You may use this function to pipe a stream.Readable string source to a stream.Writable object destination. The next example available as node samples/pipe.js read the file, parse its content and transform it.

// node samples/pipe.js
var generate = require('csv-generate');

var generator = generate({columns: ['int', 'bool'], length: 2});
generator.pipe(process.stdout);

Migration

Most of the generator is imported from its parent project CSV in a effort to split it between the generator, the parser, the transformer and the stringifier.

Development

Tests are executed with mocha. To install it, simple run npm install followed by npm test. It will install mocha and its dependencies in your project "node_modules" directory and run the test suite. The tests run against the CoffeeScript source files.

To generate the JavaScript files, run npm run coffee.

The test suite is run online with Travis against the versions 0.9, 0.10 and 0.11 of Node.js.

Contributors

Keywords

FAQs

Last updated on 09 Jun 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc