const fs = require('fs'); const chalk = require('chalk'); const addNote = (title, body) => { const notes = loadNotes(); const duplicateNote = notes.find((note) => note.title === title); if (!duplicateNote) { notes.push({ title: title, body: body }); saveNotes(notes); console.log(chalk.bgGreen.bold('New note added!')); } else { console.log(chalk.bgRed.bold('Note title taken!')); } } const removeNote = (title) => { const notes = loadNotes(); const notesToKeep = notes.filter((note) => note.title !== title); if (notes.length > notesToKeep.length) { console.log(chalk.bgGreen.bold('Note removed!')); saveNotes(notesToKeep); } else { console.log(chalk.bgRed.bold('No note found!')); } } const listNotes = () => { const notes = loadNotes(); console.log(chalk.cyan.underline('Your notes:')); notes.forEach((note) => { console.log(note.title); }); } const saveNotes = (notes) => { const dataJSON = JSON.stringify(notes); fs.writeFileSync('notes.json', dataJSON); } const readNote = (title) => { const notes = loadNotes(); const note = notes.find((note) => note.title === title); if (note) { console.log(chalk.cyan.underline(note.title)); console.log(note.body); } else { console.log(chalk.bgRed.bold('No note found!')); } } const loadNotes = () => { try { const dataBuffer = fs.readFileSync('notes.json'); const dataJSON = dataBuffer.toString(); return JSON.parse(dataJSON); } catch (e) { return []; } } module.exports = { addNote: addNote, removeNote: removeNote, listNotes: listNotes, readNote: readNote }