UNPKG

nested_json_to_csv

Version:
77 lines (76 loc) 4.02 kB
"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _CsvParserService_instances, _CsvParserService_csv, _CsvParserService_mapToJson, _CsvParserService_getAllData, _CsvParserService_getData; Object.defineProperty(exports, "__esModule", { value: true }); exports.CsvParserService = void 0; class CsvParserService { constructor(csv) { _CsvParserService_instances.add(this); _CsvParserService_csv.set(this, void 0); __classPrivateFieldSet(this, _CsvParserService_csv, csv, "f"); } parse() { const mp = __classPrivateFieldGet(this, _CsvParserService_instances, "m", _CsvParserService_getAllData).call(this); let json = {}; json = __classPrivateFieldGet(this, _CsvParserService_instances, "m", _CsvParserService_mapToJson).call(this, mp, json); return json; } get() { return __classPrivateFieldGet(this, _CsvParserService_csv, "f"); } } exports.CsvParserService = CsvParserService; _CsvParserService_csv = new WeakMap(), _CsvParserService_instances = new WeakSet(), _CsvParserService_mapToJson = function _CsvParserService_mapToJson(mp, json) { Array.from(mp.entries()).forEach(([key, value]) => { if (value instanceof Map) { json[key] = {}; json[key] = __classPrivateFieldGet(this, _CsvParserService_instances, "m", _CsvParserService_mapToJson).call(this, value, json[key]); } else { json[key] = value; } }); return json; }, _CsvParserService_getAllData = function _CsvParserService_getAllData() { let mp = new Map(); const rows = __classPrivateFieldGet(this, _CsvParserService_csv, "f").makeRows().getRows(); rows.forEach((row) => { const headers = __classPrivateFieldGet(this, _CsvParserService_csv, "f").getHeaders(); let tempMp = new Map(); headers.forEach((header, index) => { tempMp = __classPrivateFieldGet(this, _CsvParserService_instances, "m", _CsvParserService_getData).call(this, row[index], header, tempMp); }); if (rows.length > 1) mp.set(row[0], tempMp); else mp = new Map(tempMp.entries()); }); return mp; }, _CsvParserService_getData = function _CsvParserService_getData(value, path, mp = new Map()) { if (value == undefined) return mp; if (path.includes(".")) { const current = path.substring(0, path.indexOf(".")); const newPath = path.substring(path.indexOf(".") + 1, path.length); if (!mp.has(current)) mp.set(current, new Map()); const newMp = __classPrivateFieldGet(this, _CsvParserService_instances, "m", _CsvParserService_getData).call(this, value, newPath, mp.get(current)); mp.set(current, newMp); return mp; } if (value == undefined || typeof value == "object") { throw Error("There is an error in your headers they are not accurate"); } mp.set(path, value); return mp; };