Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

csv-validate

Package Overview
Dependencies
Maintainers
3
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

csv-validate

A CSV validator, featuring data streaming and error tracing

  • 0.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

csv-validate: Validating CSV Parser

This JS CSV validating parser is based on csv-parse and csv-sniffer. It features data streaming, error tracing, and automatic identification of the CSV delimiters and quotes.

csv-validate provides both NodeJS module (NPM), optional console UI (CLI), and browser/Web UI for the local validation of CSV files.

\author Artem Lutov <lua@lutan.ch>
\affiliation Zazuko GmbH, Lutov Analytics
\license Apache 2

Web UI

The Web UI bundle is located in dist/ and consists of 3 files (and optional test.csv example to test the web app):

dist/
  index.html
  styles.css
  main.js

To build the Web UI, just execute npm run build from the package directory, producing the main.js bundle in dist/. Afterward, open index.html in your browser to use the web app: WebUI screenshot

CLI

Console UI provides the following interface:

$ npx csv-validate -h
Usage: csv-validate [options] <filename>

Options:
  -r, --relax-column-count   relax column count instead of emitting an error
  -s, --skip-error-lines     skip lines with errors instead of emitting an
                             error
  -d, --delimiter <symbol>   enforce specified CSV delimiter instead of
                             inferring it
  -q, --quotes <l-r-quotes>  left [and right if distinct] quote symbols instead
                             of inferring them (default: "")
  -n, --new-line <string>    enforce specified CSV new line (e.g., \r\n)
                             instead of inferring it
  -e, --encoding <string>    file encoding (default: "utf8")
  -h, --help                 display help for command

To install it, execute:

$ npm install [-g] csv-validate

Otherwise, the executable can be called from the package sources as:

$ bin/csv-validate.js -h

NodeJS Module

The module interface abstracts csv-parse and csv-sniffer.

Interface

The main interface is represented by a single function (see index.js: Parser):

static import (input: readable-stream.Readable, options: Object)

where the possible options are (see index.js: Parser constructor):

relaxColumnCount: boolean,  // Default: undefined (false)
skipLinesWithError: boolean,  // Default: undefined (false)
delimiter: string,  // Item delimiter, e.g. ',' or ' '. Default: automatically inferred
quotes: string,  // Item quotation symbol, e.g. '\'' or '"'. Default: automatically inferred
newLine: string  // A record separator, which is a newline character set, e.g., '\n' or '\n\r'. Default: automatically inferred

Usage

The interface can be used as follows:

const CsvValidatingParser = require('csv-validate"')
const { PassThrough } = require('readable-stream')

const input = new PassThrough()
input.write('key1,key2\n')
input.write('value1_1,value2_1\n')
input.write('value1_2,value2_2\n')
input.end()

CsvValidatingParser.import(input, { newLine: '\n' })

See test/interface.test.js for more examples.

Keywords

FAQs

Package last updated on 26 Apr 2021

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc