Travail à rendre Lundi

 

const fs = require("fs").promises;
const path = require("path");
async function calculateSalesTotal(salesFiles) {
let salesTotal = 0;
for (file of salesFiles) {
const data = JSON.parse(await fs.readFile(file));
salesTotal += data.total;
}
return salesTotal;
}
async function findSalesFiles(folderName) {
let salesFiles = [];
async function findFiles(folderName) {
const items = await fs.readdir(folderName, { withFileTypes: true });
for (const item of items) {
if (item.isDirectory()) {
await findFiles(path.join(folderName, item.name));
} else {
if (path.extname(item.name) === ".json") {
await salesFiles.push(path.join(folderName, item.name));
}
}
}
}
await findFiles(folderName);
return salesFiles;
}
async function main() {
const salesDir = path.join(__dirname, "stores");
const salesTotalsDir = path.join(__dirname, "salesTotals");
try {
await fs.mkdir(salesTotalsDir);
} catch {
console.log(`${salesTotalsDir} already exists.`);
}
const salesFiles = await findSalesFiles(salesDir);
const salesTotal = await calculateSalesTotal(salesFiles);
await fs.writeFile(
path.join(salesTotalsDir, "totals.txt"),
`Total at ${new Date().toLocaleDateString()} : ${salesTotal}€\r\n`,
{ flag: "a" }
);
console.log(`Wrote sales totals to ${salesTotalsDir}`);
}
main();
view raw app.js hosted with ❤ by GitHub

Analyse du code

Que fait le code ?
Monter une structure de fichiers expliquant son fonctionnement.
Modifier le code pour une utilisation avec ESM