@rollup/plugin-dsv

Convert .csv and .tsv files into JavaScript modules with d3-dsv

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@rollup/plugin-dsv
3,134553.0.22 months ago3 years agoMinified + gzip package size for @rollup/plugin-dsv in KB

Readme

!npmnpmnpm-url !sizesizesize-url libera manifesto
@rollup/plugin-dsv
šŸ£ A Rollup plugin which converts .csv and .tsv files into JavaScript modules with d3-dsv.

Requirements

This plugin requires an LTS Node version (v14.0.0+) and Rollup v1.20.0+.

Install

Using npm:
npm install @rollup/plugin-dsv --save-dev

Usage

Create a rollup.config.js configuration file and import the plugin:
import dsv from '@rollup/plugin-dsv';

export default {
  input: 'src/index.js',
  output: {
    dir: 'output',
    format: 'cjs'
  },
  plugins: [dsv()]
};

Then call rollup either via the CLI or the API.

Practical Example

Suppose that you have a CSV (or TSV!) file which contains some information on delicious fruits:
type,count
apples,7
pears,4
bananas,5

And suppose you'd like to import that CSV as an Array within some part of your code. After adding the plugin (as shown above), you may import (or require) the CSV file directly. The import will provide an Array of Objects representing rows from the CSV file:
import fruit from './fruit.csv';

console.log(fruit);
// [
//   { type: 'apples', count: '7' },
//   { type: 'pears', count: '4' },
//   { type: 'bananas', count: '5' }
// ]

Options

processRow

Type: Function
Default: null
Specifies a function which processes each row in the parsed array. The function can either manipulate the passed row, or return an entirely new row object.
This option could be used for converting numeric string values into Number values. ā€“ for example turning numeric values into numbers, e.g.
dsv({
  processRow: (row, id) => {
    Object.keys(row).forEach((key) => {
      var value = row[key];
      row[key] = isNaN(+value) ? value : +value;
    });
  }
});

Meta

CONTRIBUTING
LICENSE (MIT)