1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const json2csv = require('json2csv')
- const log = require('../util/log')
- const fs = require('fs-extra')
- const path = require('path')
- module.exports = {
- // This report wants raw data.
- isRaw: true,
- format (data, options) {
- const csv = json2csv({ data })
- if (options.program) {
- // If reporting output is defined, ignore console log here.
- if (options.program.output === undefined) {
- log.raw(csv)
- }
- } else {
- log.raw(csv)
- }
- return csv
- },
- finalReport (reports, program) {
- if (program.output === undefined) {
- return
- }
- // Ensure the output directory exists.
- fs.ensureDirSync(program.output)
- // Write each report to the disk
- for (var report of reports) {
- var outPath = path.join(program.output, report.name + '.csv')
- log.action('saving', outPath)
- if (program.output === '-') {
- console.log(JSON.stringify(report.contents))
- } else {
- fs.writeFileSync(outPath, report.contents, 'utf8')
- }
- }
- }
- }
|