diff --git a/index.js b/index.js index 55fc0e5..9309b02 100644 --- a/index.js +++ b/index.js @@ -3,7 +3,7 @@ const path = require('path'); const JSONStream = require('JSONStream'); // Chemin du fichier d'entrée -const inputFilePath = 'Artefacts/********.json'; // CHANGE THIS +const inputFilePath = 'Artefacts/artefact_********.json'; // CHANGE THIS // Générer un nombre aléatoire entre 1 et 999 const randomNum = Math.floor(Math.random() * 999) + 1; // Chemin du dossier et du fichier de sortie @@ -12,58 +12,47 @@ const outputFilePath = path.join(outputDir, `data_artefact_messages_${randomNum} async function extractAndSaveData() { try { - // Vérifier si le fichier d'entrée existe + // Vérifier si le fichier d'entrée existe et créer le dossier de sortie await fs.promises.access(inputFilePath); - - // Créer le dossier de sortie s'il n'existe pas await fs.promises.mkdir(outputDir, { recursive: true }); - // Créer un flux de lecture pour le fichier d'entrée + // Utiliser des promesses pour créer les flux de lecture/écriture const fileStream = fs.createReadStream(inputFilePath); - - // Créer un flux d'écriture pour le fichier de sortie const outputStream = fs.createWriteStream(outputFilePath); - // Créer un transformateur pour le flux JSON + // Transformer les messages JSON const jsonStream = JSONStream.parse('messages.*'); - - // Écrire le début du tableau dans le fichier de sortie outputStream.write('['); - // Compteur pour gérer la virgule entre les objets let first = true; - // Traiter chaque message du flux fileStream .pipe(jsonStream) .on('data', (message) => { - if (!first) { - outputStream.write(','); - } + // Simplification de la logique pour écrire une virgule + outputStream.write(first ? '' : ','); first = false; - // Écrire chaque message dans le fichier de sortie outputStream.write(JSON.stringify({ - id: message.id, // ID du message - timestamp: message.timestamp, // Horodatage du message - content: message.content // Contenu du message + id: message.id, + timestamp: message.timestamp, + content: message.content })); }) .on('end', () => { - // Écrire la fin du tableau dans le fichier de sortie outputStream.write(']'); outputStream.end(); console.log(`Les données ont été sauvegardées avec succès dans ${outputFilePath}`); }) .on('error', (err) => { - console.error('Erreur:', err); + console.error('Erreur lors de la lecture des données:', err); }); } catch (err) { if (err.code === 'ENOENT') { - console.error('Le fichier d\'entrée est introuvable:', inputFilePath); + console.error(`Le fichier d'entrée est introuvable: ${inputFilePath}`); } else { console.error('Erreur:', err); } } } -extractAndSaveData(); +extractAndSaveData(); \ No newline at end of file