UNPKG

csv-transpose

Version:

Transpose (rotate) data from rows to columns or vice verse in csv

51 lines (50 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const path = require("path"); const core_1 = require("../lib/core"); function main(selfFile, ext) { let separator = ','; if (ext === 'tsv') { separator = '\t'; } let inFilename; let outFilename; for (let i = 0, len = process.argv.length; i < len; i++) { let arg = process.argv[i]; if (arg === '-o' || arg === '--output') { i++; outFilename = process.argv[i]; } else if (arg === '-i' || arg === '--input') { i++; inFilename = process.argv[i]; } else if (arg === '-h' || arg === '--help') { let file = path.basename(selfFile); console.log(`Example with file: ${file} -i in.${ext} -o out.${ext}`); console.log(`Example with pipe: cat in.${ext} | ${file} > out.${ext}`); return; } } let input; if (inFilename) { input = fs.readFileSync(inFilename).toString(); } else { input = fs.readFileSync(0).toString(); } if (!input) { console.error('Error: input is empty!'); process.exit(1); } let output = (0, core_1.transpose)(input, separator); if (outFilename) { fs.writeFileSync(outFilename, output); console.error('saved to', outFilename); } else { process.stdout.write(output); } } module.exports = main;