Files
2026-09-25 11:02:14 +02:00

51 lines
1.1 KiB
JavaScript

const fs = require("fs");
const path = require("path");
const dossierData = path.join(__dirname, "..", "data");
/**
* Lit un fichier JSON et retourne son contenu.
* Si le fichier n'existe pas, retourne la valeur par défaut.
*/
function lireJson(nomFichier, valeurParDefaut)
{
const chemin = path.join(dossierData, nomFichier);
if (!fs.existsSync(chemin))
{
return valeurParDefaut;
}
const contenu = fs.readFileSync(chemin, "utf8");
return JSON.parse(contenu);
}
/**
* Écrit un objet JavaScript dans un fichier JSON.
*/
function ecrireJson(nomFichier, donnees)
{
if (!fs.existsSync(dossierData))
{
fs.mkdirSync(dossierData, { recursive: true });
}
const chemin = path.join(dossierData, nomFichier);
fs.writeFileSync(chemin, JSON.stringify(donnees, null, 2), "utf8");
}
/**
* Génère un identifiant simple à partir de la date et d'un nombre aléatoire.
*/
function genererId()
{
return Date.now().toString(36) + Math.random().toString(36).slice(2, 8);
}
module.exports = {
lireJson,
ecrireJson,
genererId,
dossierData
};