Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
csv-validate
Advanced tools
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
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:
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
The module interface abstracts csv-parse and csv-sniffer.
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
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.
FAQs
A CSV validator, featuring data streaming and error tracing
We found that csv-validate demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
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.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.