csv.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const json2csv = require('json2csv')
  2. module.exports.format = function (data, options) {
  3. var data = data.map(el => {
  4. var row = {}
  5. // Iterate over the columns and add each item to the new row.
  6. for (var key in options.columns) {
  7. row[key] = options.columns[key](el)
  8. }
  9. return row
  10. })
  11. const csv = json2csv({ data })
  12. if(options.program) {
  13. // If reporting output is defined, ignore console log here.
  14. if (options.program.reportOutput === undefined) {
  15. console.log(csv)
  16. }
  17. } else {
  18. console.log(csv)
  19. }
  20. return csv
  21. }
  22. const fs = require('fs-extra')
  23. const path = require('path')
  24. module.exports.finalReport = async function(reports, program) {
  25. if (program.reportOutput === undefined) {
  26. return
  27. }
  28. // Ensure the output directory exists.
  29. fs.ensureDirSync(program.reportOutput)
  30. // Write each report to the disk
  31. for(var report of reports) {
  32. var outPath = path.join(program.reportOutput, report.name + '.csv')
  33. console.log('saving', outPath)
  34. fs.writeFileSync(outPath, report.contents, 'utf8')
  35. }
  36. }