Created
February 21, 2022 16:32
-
-
Save rbf/2c6559311acfe28ad097f2704e08345a to your computer and use it in GitHub Desktop.
Draft for @rbf/parcel-transformer-csv-to-json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"extends": "@parcel/config-default", | |
"transformers": { | |
"*.csv": [ | |
"@rbf/parcel-transformer-csv-to-json" | |
] | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// DOC: https://parceljs.org/plugin-system/authoring-plugins | |
// DOC: https://parceljs.org/plugin-system/transformer/ | |
const {Transformer} = require("@parcel/plugin"); | |
const csvtojson=require("csvtojson"); | |
module.exports = new Transformer({ | |
async transform({asset}) { | |
let csvStr = await asset.getCode(); | |
let jsObj = await csvtojson().fromString(csvStr); | |
// As JSON, i.e. JSON.parse used in the final file. | |
asset.type = 'json'; | |
asset.setCode(JSON.stringify(jsObj)); | |
// Directly as JS object. Faster on the client as no parsing is needed, | |
// but object keys are not obfuscated by javascript-obfuscator. | |
// asset.type = 'js'; | |
// asset.setCode(`module.exports = ${JSON.stringify(jsObj)}`); | |
return [asset]; | |
} | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "@rbf/parcel-transformer-csv-to-json", | |
"version": "0.0.1", | |
"description": "Transformer plugin for Parcel v2 to convert csv files to json.", | |
"engines": { | |
"parcel": "2.x" | |
}, | |
"main": "src/index.js", | |
"keywords": [ | |
"parcel", | |
"parceljs", | |
"parcel-transformer", | |
"parcel-plugin", | |
"csv-to-json", | |
"csv", | |
"json" | |
], | |
"repository": { | |
"type": "git", | |
"url": "git+https://github.com/rbf/parcel-transformer-csv-to-json.git" | |
}, | |
"author": "https://github.com/rbf", | |
"license": "MIT", | |
"bugs": { | |
"url": "https://github.com/rbf/parcel-transformer-csv-to-json/issues" | |
}, | |
"homepage": "https://github.com/rbf/parcel-transformer-csv-to-json#readme", | |
"dependencies": { | |
"@parcel/plugin": "^2.3.1", | |
"csvtojson": "2.0.10" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment