🍣 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.
This plugin requires an LTS Node version (v8.0.0+) and Rollup v1.20.0+.
Using npm:
npm install @rollup/plugin-dsv --save-dev
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.
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' }
// ]
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;
});
}
});