-
-
Notifications
You must be signed in to change notification settings - Fork 2
Main module
The main module creates a parser Duplex stream decorated with emit() from stream-json. This lets you listen for token types as named events instead of inspecting data objects.
// ESM
import makeParser from 'stream-csv-as-json';
// CommonJS
const makeParser = require('stream-csv-as-json');The parser factory is also available as a named export:
// ESM
import {parser} from 'stream-csv-as-json';
// CommonJS
const {parser} = require('stream-csv-as-json');import fs from 'node:fs';
import makeParser from 'stream-csv-as-json';
const stream = makeParser();
let rowCount = 0;
stream.on('startArray', () => ++rowCount);
stream.on('stringValue', val => console.log('field:', val));
stream.on('end', () => console.log(`${rowCount} rows`));
fs.createReadStream('data.csv').pipe(stream);If you don't need named events and prefer the data event with token objects, use parser directly — this avoids the small overhead of emit():
import {parser} from 'stream-csv-as-json';
import fs from 'node:fs';
const pipeline = fs.createReadStream('data.csv').pipe(parser.asStream());
pipeline.on('data', token => console.log(token.name, token.value));Or use it as a function in a chain() pipeline:
import chain from 'stream-chain';
chain([fs.createReadStream('data.csv'), parser(), token => console.log(token)]);Takes optional parser options and returns a Duplex stream with emit() applied. The stream emits named events for each token type (startArray, endArray, startString, endString, stringChunk, stringValue).
The parser factory function. Equivalent to require('stream-csv-as-json/parser.js').
Start here
Components
Tuning
Reference
stream-csv-as-json 1.x (legacy)
Built on stream-chain and stream-json