const readline = require("readline"); function createInterface() { return readline.createInterface({ input: process.stdin, output: process.stdout, }); } async function askNumber(min, max) { // On attend que l'utilisateur entre un nombre const number = await new Promise((resolve) => { // On crée une interface pour lire la réponse const interface = createInterface(); // On affiche un message à l'utilisateur interface.question( `Entrez un nombre entre ${min} et ${max} : `, (answer) => { // On convertit la réponse en nombre entier (base 10) const number = parseInt(answer, 10); // Si la saisie n'est pas un nombre if (isNaN(number)) { console.log("Erreur : Vous devez entrer un nombre"); // On ferme l'interface interface.close(); // On relance la saisie return resolve(askNumber(min, max)); } // On ferme l'interface interface.close(); // On retourne le nombre resolve(number); } ); }); // Si le nombre est inférieur au minimum ou supérieur au maximum if (number < min || number > max) { console.log(`Erreur : Vous devez entrer un nombre entre ${min} et ${max}`); // On relance la saisie return await askNumber(min, max); } // On retourne le nombre return number; } module.exports = { askNumber };