npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

csvly

v0.3.6

Published

parse csv files line by line

Downloads

14

Readme

csvly

npm package

read csv files line by line uses readly to read line by line from the given file and fires an event for each parsed line

usage

ctor

new Csvly(input,options)

input - receives either a path to a file or a stream

options - optional object with options, see below for all options

example with path:

var Csvly = require("csvly");
var reader = new Csvly("test.csv");

example with stream:

var fs = require('fs');
var Csvly = require("csvly");
var strm = fs.createReadStream("test.csv");
var reader = new Csvly(strm);

read

read(start, count)

start - optional number, from which row to start reading (how many lines to skip from the begining)

count - optional number, how many rows max to read from the file (if bigger than actual rows in file its ok)

var Csvly = require("csvly");
var reader = new Csvly("test.csv");
reader.on('line', function(line) {
	console.log(line);
});
reader.on('end', function() {
	console.log('done');
});
reader.read(0,1);

in this example for test.csv:

one,two,three

line will be emitted once as: { '0': 'one', '1': 'two', '2': 'three' }

In addition csvly has the following convenient methods:

readAll() reads all lines from the file

readFirst(count) read the first count rows from the begining of the file

opts

csvly receives an options object as the second argument to its constructor which can contain:

  • encoding - optional, default is utf8
  • eol - optional end of line char, default is OS newline
  • headers - optioanl array of values to use as csv headers. If given they will be the key's to the parsed object properties
  • firstLineIsHeaders - optioanl boolean. Whether to use the first line as headers. If true it will be the key's to the parsed object properties. This option can not be given together with the header option - only one of them may be included in the opts, otherwise an error is thrown.
  • array - optional boolean. If true line event will emit data as an array instead of an object
  • custom - optional object. If included will pass these options to the parser. Can include options such as qoute, trim etc...

example given headers array:

var Csvly = require("csvly");
var reader = new Csvly("test.csv", {
	headers = ["first", "second", "third"]
});
reader.on('line', function(line) {
	console.log(line);
});
reader.on('end', function() {
	console.log('done');
});
reader.readAll();

in this example for test.csv:

one,two,three

line will be emitted once as: { 'first': 'one', 'second': 'two', 'third': 'three' }

example given first line as headers:

var Csvly = require("csvly");
var reader = new Csvly("test.csv", {
	firstLineIsHeaders: true
});
reader.on('line', function(line) {
	console.log(line);
});
reader.on('end', function() {
	console.log('done');
});
reader.readAll();

in this example for test.csv:

one,two,three
a, b, c

line will be emitted once as: { 'one': 'a', 'two': 'b', 'three': 'c' }