Skip to content

Latest commit

 

History

History
97 lines (68 loc) · 2.57 KB

README.md

File metadata and controls

97 lines (68 loc) · 2.57 KB

npm size libera manifesto

@rollup/plugin-dsv

🍣 A Rollup plugin which converts .csv and .tsv files into JavaScript modules with d3-dsv.

WebAssembly Modules are imported asynchronous as base64 strings. Small modules can be imported synchronously.

Requirements

This plugin requires an LTS Node version (v8.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)