nested_json_to_csv
Version:
77 lines (76 loc) • 4.02 kB
JavaScript
;
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;
};