first comit

This commit is contained in:
Johan
2025-12-15 16:08:10 +01:00
commit c2fea1f11a
6 changed files with 439 additions and 0 deletions

81
api_cuisson.js Normal file
View File

@@ -0,0 +1,81 @@
// ===================================================================
// API de Cuisine pour cuisson de pâtes - Fonctions Asynchrones
//
// Chaque fonction simule une étape de la préparation et retourne
// une Promise. Cette approche modulaire sépare la logique de
// chaque action de son orchestration.
// ===================================================================
/**
* @typedef {object} ConfigCuisson
* @property {number} TEMPS_EBULLITION - Temps en ms pour que l'eau arrive à ébullition.
* @property {number} TEMPS_CUISSON_SAUCE - Temps en ms pour préparer la sauce.
* @property {number} TEMPS_CUISSON_PATES - Temps en ms pour cuire les pâtes.
* @property {number} TEMPS_MELANGE - Temps en ms pour mélanger et servir.
*/
/** @type {ConfigCuisson} */
export const config = {
TEMPS_EBULLITION: 1500,
TEMPS_CUISSON_SAUCE: 1200,
TEMPS_CUISSON_PATES: 1000,
TEMPS_MELANGE: 400,
};
// --- API de la cuisine (fonctions "promisifiées") ---
export const apiCuisson = {
/**
* Simule la mise à ébullition de l'eau.
* @returns {Promise<string>} Promesse qui se résout avec 'eau-bouillante'.
*/
chaufferEau() {
return new Promise((resolve) => {
console.log(" - L'eau chauffe...");
setTimeout(() => {
console.log(" -> L'eau est à ébullition.");
resolve('eau-bouillante');
}, config.TEMPS_EBULLITION);
});
},
/**
* Simule la préparation de la sauce.
* @param {string} typeSauce - Le type de sauce à préparer.
* @returns {Promise<string>} Promesse qui se résout avec 'sauce-prete'. Rejette si aucun type n'est fourni.
*/
preparerSauce(typeSauce) {
return new Promise((resolve, reject) => {
console.log(` - Préparation de la sauce ${typeSauce}...`);
// TODO : compléter comme l'exemple ci-dessus. Gérer le cas où typeSauce est vide ou null en rejetant la promesse avec une erreur.
// ... votre code ici ...
});
},
/**
* Simule la cuisson des pâtes.
* @param {string} typePates - Le type de pâtes à cuire.
* @returns {Promise<string>} Promesse qui se résout avec 'pates-cuites'.
*/
cuirePates(typePates) {
return new Promise((resolve) => {
console.log(` - Cuisson des ${typePates}...`);
// TODO : compléter comme l'exemple chaufferEau ci-dessus.
// ... votre code ici ...
});
},
/**
* Simule le mélange final et le service.
* @param {string} typePates - Le type de pâtes.
* @param {string} typeSauce - Le type de sauce.
* @returns {Promise<string>} Promesse qui se résout avec le plat final.
*/
melangerEtServir(typePates, typeSauce) {
return new Promise((resolve) => {
console.log(" - Mélange des pâtes et de la sauce...");
// TODO : compléter comme l'exemple chaufferEau ci-dessus.
// ... votre code ici ...
});
}
};