excel-remastered
Version:
Enhances readability of complex nested JSON data while converting to CSV
37 lines (36 loc) • 1.58 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var getHeaders_1 = __importDefault(require("./jsonToCsv/getHeaders"));
var getBody_1 = __importDefault(require("./jsonToCsv/getBody"));
var fs_1 = __importDefault(require("fs"));
function jsonToCsv(inputData, outputCsvFile) {
var jsonContent;
// Check if inputData is a string (file path) or a json object
if (typeof inputData === 'string') {
var jsonString = fs_1.default.readFileSync(inputData, 'utf8');
jsonContent = JSON.parse(jsonString);
}
else if (typeof inputData === 'object') {
// Convert JSON object to string
jsonContent = JSON.stringify(inputData);
}
var _a = (0, getHeaders_1.default)(jsonContent), csvHeadersArray = _a.csvHeadersArray, headers = _a.headers;
var csvBodyArray = (0, getBody_1.default)(jsonContent, headers);
var csvHeaderContent = csvHeadersArray
.map(function (row) { return row.join(","); })
.join("\n");
var csvBodyContent = csvBodyArray.map(function (row) { return row.join(","); }).join("\n");
var csvContent = csvHeaderContent + "\n\n" + csvBodyContent;
if (outputCsvFile) {
fs_1.default.writeFileSync(outputCsvFile, csvContent);
return "CSV file written to ".concat(outputCsvFile);
}
else {
return csvContent;
}
}
var excelRemastered = { jsonToCsv: jsonToCsv };
exports.default = excelRemastered;
;