51 lines
1.1 KiB
JavaScript
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
|
|
};
|