Files
HowBadIsMyBatch/docs/SymptomsCausedByVaccines/js/PrrByKey2CsvConverter.js
frankknoll d3acdd66f4 refactoring
2023-10-15 13:55:50 +02:00

35 lines
1.0 KiB
JavaScript

class PrrByKey2CsvConverter {
static convertPrrByKey2Csv({ prrByKey, keyColumn, prrColumn }) {
return PrrByKey2CsvConverter.#convert2Csv(
{
prrByKey: PrrByKey2CsvConverter.#quoteKeys(prrByKey),
keyColumn: PrrByKey2CsvConverter.#quote(keyColumn),
prrColumn: PrrByKey2CsvConverter.#quote(prrColumn)
});
}
static #quoteKeys(prrByKey) {
return Object.fromEntries(
Object
.entries(prrByKey)
.map(([key, prr]) => [PrrByKey2CsvConverter.#quote(key), prr]))
}
static #quote(str) {
return '"' + str + '"';
}
static #convert2Csv({ prrByKey, keyColumn, prrColumn }) {
const header = `${keyColumn},${prrColumn}`;
return `${header}\n${PrrByKey2CsvConverter.#convertDict2Csv(prrByKey)}`;
}
static #convertDict2Csv(dict) {
return Object
.entries(dict)
.map(([key, value]) => `${key},${value}`)
.join('\n');
}
}