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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@maukode/siesvi

v0.2.0

Published

siesvi is CSV library that use typescript and provide CSV common functions from parsing, validation, to transformation.

Readme

siesvi (CSV) Library

siesvi is a lightweight yet powerful CSV processing library designed for Node.js. It provides essential functionalities for handling CSV files efficiently by leveraging the power of Node.js streams. This makes it suitable for processing large datasets without excessive memory consumption.

The library offers a high-level wrapper class for ease of use, as well as lower-level stream-based classes for more advanced or customized processing pipelines.

Core Components

siesvi consists of two main types of components:

  1. Wrapper Class – A high-level abstraction that simplifies working with CSV files by managing the entire lifecycle, from loading to writing.
  2. Stream-Based Classes – Individual stream components that allow fine-grained control over CSV processing, useful for building custom pipelines.

Wrapper Class (High-Level API)

Csv (Recommended for General Use)

The Csv class provides a simple and convenient way to handle CSV files. It acts as a wrapper around the available stream-based classes, managing the entire workflow from reading a CSV file to processing and writing it back.

If you need a straightforward approach to handling CSV files, this class is the best choice. However, if you require more flexibility or need to build a custom pipeline, you can use the stream-based classes directly.


Stream-Based Classes (Low-Level API)

These classes extend Node.js stream modules and are designed for handling specific stages of CSV processing. They can be used individually or combined in a pipeline for greater control.

FileLoader (Reading CSV as a Stream)

  • This class reads a CSV file and converts it into a stream.
  • It is the entry point for most CSV processing pipelines in siesvi.

CsvValidator (Validation of CSV Data)

  • Performs validation on the incoming CSV stream.
  • Helps ensure that data meets the expected format before further processing.

CsvParser (Parsing CSV Data to JavaScript Objects)

  • Converts a validated CSV stream into structured JavaScript objects with the format:
    { [key: string]: number | string | boolean | Date }
  • Important: This class does not perform CSV format validation. To avoid processing errors, it is recommended to place CsvValidator before CsvParser in the processing pipeline.

CsvWriter (Writing Data to a CSV File)

  • Transforms a processed stream into a CSV-formatted file.
  • Supports two output methods:
    1. Writing directly to a file – Recommended for large datasets.
    2. Saving to an internal buffer – Useful for temporary storage but not recommended for large data, as it may cause out-of-memory errors.

Usage Recommendations

  • If you need a simple and efficient way to work with CSV files, use the Csv class.
  • If you require more flexibility, build a custom pipeline using FileLoader, CsvValidator, CsvParser, and CsvWriter as needed.
  • Always validate CSV files before parsing them to prevent format-related issues.
  • Avoid using an internal buffer for large datasets to prevent memory overflow.