Socket
Socket
Sign inDemoInstall

csv-validate

Package Overview
Dependencies
8
Maintainers
3
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    csv-validate

A CSV validator, featuring data streaming and error tracing


Version published
Weekly downloads
4
decreased by-20%
Maintainers
3
Install size
1.16 MB
Created
Weekly downloads
 

Readme

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

Last updated on 26 Apr 2021

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc