CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-csv-generate

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

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

CSV Generate

CSV Generate is a flexible generator of random CSV strings and JavaScript objects implementing the Node.js stream.Readable API. It provides scalable streaming implementation with random or pseudo-random seed-based generation, ensuring idempotent results with seed options for reproducible data generation.

Package Information

  • Package Name: csv-generate
  • Package Type: npm
  • Language: JavaScript/TypeScript
  • Installation: npm install csv-generate

Core Imports

import { generate, Generator } from "csv-generate";

For sync operations:

import { generate } from "csv-generate/sync";

For Web Streams:

import { generate } from "csv-generate/stream";

For browser environments:

import { generate, Generator } from "csv-generate/browser/esm";
import { generate } from "csv-generate/browser/esm/sync";

CommonJS:

const { generate, Generator } = require("csv-generate");

Basic Usage

import { generate } from "csv-generate";

// Stream API with callback
generate({
  seed: 1,
  columns: 2,
  length: 3
}, (err, output) => {
  console.log(output);
});

// Stream API 
const generator = generate({
  seed: 1,
  objectMode: true,
  columns: 2,
  length: 3
});

generator.on('readable', function() {
  let record;
  while ((record = generator.read()) !== null) {
    console.log(record);
  }
});

Architecture

CSV Generate is built around several key components:

  • Stream Interface: Main Generator class extending Node.js stream.Readable for scalable data generation
  • Multiple APIs: Stream-based, synchronous, and Web Streams API variants for different use cases
  • Value Generation: Extensible column function system supporting built-in types (ascii, int, bool) and custom generators
  • Options System: Comprehensive configuration covering output format, generation control, and stream behavior
  • Seeded Random: Deterministic generation using seed values for reproducible test data

Capabilities

Stream Generation

Core streaming CSV generation using Node.js Readable streams. Ideal for large datasets and real-time data generation.

function generate(options?: Options, callback?: Callback): Generator;
function generate(callback?: Callback): Generator;

class Generator extends stream.Readable {
  constructor(options?: Options);
  readonly options: Options;
  end(): void;
}

Stream Generation

Synchronous Generation

Synchronous CSV generation for simple use cases where all data fits in memory.

function generate<T = any>(options: number | Options): string | Array<T>;

Synchronous Generation

Web Streams Generation

Web Streams API compatible generation for browser environments and modern Node.js applications.

function generate(options?: Options): ReadableStream<Buffer>;

Web Streams Generation

Configuration Options

Comprehensive option system controlling all aspects of CSV generation including columns, formatting, timing, and output control.

interface Options extends stream.ReadableOptions {
  columns?: number | (string | ColumnsFunction)[];
  delimiter?: string;
  duration?: number;
  encoding?: BufferEncoding | undefined;
  end?: number | Date;
  eof?: boolean | string;
  fixed_size?: boolean;
  fixedSize?: boolean;
  high_water_mark?: number;
  highWaterMark?: number;
  length?: number;
  max_word_length?: number;
  maxWordLength?: number;
  object_mode?: boolean;
  objectMode?: boolean;
  row_delimiter?: string;
  seed?: boolean | number;
  sleep?: number;
}

Configuration Options

Types

type Callback = (err?: Error, records?: any) => void;

type ColumnsFunction = (args: ColumnsFunctionArgs) => string | number | null;

interface ColumnsFunctionArgs {
  options: Options;
  state: State;
}

interface State {
  start_time: number | null;
  fixed_size_buffer: string;
  count_written: number;
  count_created: number;
}
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/csv-generate@4.5.x
Publish Source
CLI
Badge
tessl/npm-csv-generate badge