diff --git a/packages/dsv/README.md b/packages/dsv/README.md index db50c2c9e..294b7b231 100644 --- a/packages/dsv/README.md +++ b/packages/dsv/README.md @@ -13,7 +13,7 @@ ## Requirements -This plugin requires an [LTS](https://github.com/nodejs/Release) Node version (v14.0.0+) and Rollup v1.20.0+. +This plugin requires an [LTS](https://github.com/nodejs/Release) Node version (v14.0.0+) and Rollup v2.78.0+. ## Install diff --git a/packages/dsv/package.json b/packages/dsv/package.json index c89dab3a5..5be2af214 100755 --- a/packages/dsv/package.json +++ b/packages/dsv/package.json @@ -44,7 +44,7 @@ "rollup-plugin" ], "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { diff --git a/packages/dsv/src/index.js b/packages/dsv/src/index.js index ec94aa446..d05370c39 100755 --- a/packages/dsv/src/index.js +++ b/packages/dsv/src/index.js @@ -6,6 +6,11 @@ import { createFilter } from '@rollup/pluginutils'; import stripBom from 'strip-bom'; const parsers = { '.csv': csvParse, '.tsv': tsvParse }; +const idFilter = new RegExp( + `\\.(?:${Object.keys(parsers) + .map((ext) => ext.slice(1)) + .join('|')})$` +); export default function dsv(options = {}) { const filter = createFilter(options.include, options.exclude); @@ -13,22 +18,27 @@ export default function dsv(options = {}) { return { name: 'dsv', - transform(code, id) { - if (!filter(id)) return null; + transform: { + filter: { + id: idFilter + }, + handler(code, id) { + if (!filter(id)) return null; - const ext = extname(id); - if (!(ext in parsers)) return null; + const ext = extname(id); + if (!(ext in parsers)) return null; - let rows = parsers[ext](stripBom(code)); + let rows = parsers[ext](stripBom(code)); - if (options.processRow) { - rows = rows.map((row) => options.processRow(row, id) || row); - } + if (options.processRow) { + rows = rows.map((row) => options.processRow(row, id) || row); + } - return { - code: `export default ${toSource(rows)};`, - map: { mappings: '' } - }; + return { + code: `export default ${toSource(rows)};`, + map: { mappings: '' } + }; + } } }; }