This tool can be used to organize transformations and mappings to a CSV within a JSON File. The transformation logic is referred to as rules in this document
Samples are located in the resource folder
Install csv-rules globally
npm install csv-rules -g
Create a sample csv
mkdir example
echo "fname,lname,AppointmentDate
Ram,Sharma,12-20-1999
Bom,Burma,11-20-1999
Tony,Karma,10-20-1999" > sample.csv
Check content
cat sample.csv
Create a rule json file
echo '{
"rules": {
"FullName": "{{fname}} {{lname}}",
"Country": "United States"
},
"output": {
"format": "CSV",
"fields": [
"fname",
"lname",
"AppointmentDate",
"FullName",
"Country"
]
}
}' > rules.json
Run this to apply the rule above to the csv
csv-rules run sample.csv -c rules.json -o output.csv
cat output.csv
Observe that a new column FullName has been added
Create a sample csv
mkdir example
echo "fname,lname,AppointmentDate
Ram,Sharma,12-20-1999
Bom,Burma,11-20-1999
Tony,Karma,10-20-1999" > sample.csv
Check content
cat sample.csv
Create a rule json file
echo '{
"rules": {
"InitialFirstName": {
"voca": [
"first",
"{{fname}}"
]
},
"InitialLastName": {
"voca": [
"last",
"{{lname}}"
]
},
"Initials": "{{InitialFirstName}}{{InitialLastName}}",
"AppointmentDate": {
"dayjs": [
"{{AppointmentDate}}",
"MM-DD-YYY",
"MM/DD/YYYY"
]
}
},
"output": {
"format": "CSV",
"fields": [
"Initials",
"AppointmentDate"
]
}
}' > rules.json
Run this to apply the rule above to the csv
csv-rules run sample.csv -c rules.json -o output.csv
cat output.csv
Observe that the output contains the columns Initials and a reformatted AppointmentDate.
csv-rules
relies voca and dayjs functions for the required transformations. Visit their documentation to see which other functions are supported
npm install
npm run test
# Get Help
npm run csv-rules -h
# Get Help about run command
npm run csv-rules run -h
# Example Usage where output is shown to terminal
npm run csv-rules run ./resource/sample_source.csv -c ./resource/sample_rules.json
# Example Usage where output is written to file
npm run csv-rules run ./resource/sample_source.csv -c ./resource/sample_rules.json -o output.csv
To see examples about rules the following will be helpful
- Sample Rule file in resourceFolder/sample_rules
- Unit test files test/transformation