This commit is contained in:
@@ -3,8 +3,52 @@ import zlib from 'node:zlib';
|
||||
import color from 'chalk';
|
||||
|
||||
const data = fs.readFileSync('data/products.csv', 'utf-8');
|
||||
const products = data.split('\n');
|
||||
const header = products.shift().split(',');
|
||||
// console.log('header', header); // => Code,Short Description,Tagline,Quantity,Price
|
||||
|
||||
const convertCsvToJson = (products, ar) => {};
|
||||
const convertCsvToJson = (productRow) => {
|
||||
// console.log('products', products);
|
||||
// console.log('ar', ar);
|
||||
|
||||
const cols = productRow.split(/\s*,\s*/);
|
||||
// console.log(product);
|
||||
// let obj = {};
|
||||
|
||||
// for (let i = 0; i < header.length; i++) {
|
||||
// obj[header[i]] = cols[i];
|
||||
// }
|
||||
|
||||
const product = header.reduce((obj, str, idx) => {
|
||||
obj[str] = cols[idx];
|
||||
return obj;
|
||||
}, {});
|
||||
|
||||
return product;
|
||||
};
|
||||
|
||||
const entries = products
|
||||
.filter((row) => row !== '') //
|
||||
.map(convertCsvToJson);
|
||||
console.log(entries);
|
||||
|
||||
// fs.writeFile('a.json', JSON.stringify(entries), 'UTF-8', (err) => {
|
||||
// console.warn(err);
|
||||
// });
|
||||
|
||||
const compressedData = zlib.gzipSync(JSON.stringify(entries));
|
||||
try {
|
||||
fs.writeFileSync('data/products.json.gz', compressedData);
|
||||
console.log('compressed file');
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
/*
|
||||
Übung 27: Ohne Umwege
|
||||
|
||||
Die Datei products.csv soll in eine products.json umgewandelt werden und in products.json.gz komprimiert werden.
|
||||
*/
|
||||
|
||||
/*
|
||||
Übung 27: Ohne Umwege
|
||||
|
||||
Reference in New Issue
Block a user