2024-12-10 00:56:17 +00:00

71 lines
2.5 KiB
JavaScript

const prompt = require('prompt-sync')({ sigint: true });
const fs = require('fs');
const filePath = 'todolist.txt';
console.log("Welcome to Tiffy's to-do list!");
const name = prompt("What is your name? ");
console.log(`Hello, ${name}!`);
const instruction = `You can:
(1) Add items to the to-do list
(2) Remove items from the to-do list
(3) Show the to-do list
(4) Exit the to-do list`;
console.log(instruction);
function loadToDoList() {
const data = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf-8') : '';
return data ? data.split('\n').filter(item => item.trim() !== '') : [];
}
let todoList = loadToDoList();
while (true) {
const todo = prompt("Would you like to add, remove, show, or exit? ").toLowerCase();
switch (todo) {
case "add":
let condition_add = true;
while (condition_add) {
const add1 = prompt("What would you like to add to the to-do list? ");
if (add1.toLowerCase() === "stop") {
condition_add = false;
}
todoList.push(add1);
console.log(`You have added "${add1}" to Tiffy's to-do list!`);
console.log(`Type \"stop\" to return to the main menu.`);
}
fs.writeFileSync(filePath, todoList.join('\n'), 'utf-8');
break;
case "remove":
let condition_remove = true;
while (condition_remove) {
const remove1 = prompt("What would you like to remove from the to-do list? (Input the number on the list) ");
if (remove1.toLowerCase() === "stop") {
condition_remove = false;
}
const index = parseInt(remove1) - 1;
const removedTask = todoList.splice(index, 1);
console.log(`You have removed "${removedTask}" from Tiffy's to-do list!`);
console.log(`Type \"stop\" to return to the main menu.`);
}
fs.writeFileSync(filePath, todoList.join('\n'), 'utf-8');
break;
case "show":
console.log("Tiffy's to-do list:");
todoList.forEach((task, index) => console.log(`${index + 1}. ${task}`));
break;
case "exit":
console.log("Thank you for using Tiffy's to-do list.");
return;
default:
console.log("Hey! Tiffy doesn't know what you mean!");
break;
}
}