-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnotes.js
82 lines (74 loc) · 1.69 KB
/
notes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const fs=require('fs')
const chalk=require('chalk')
// Getting notes
const getNotes=()=>{
return 'Your notes'
}
// Adding Notes
const addNotes=(title,body)=>{
const notes=loadNotes()
const duplicateNote=notes.find(n=>n.title===title)
if(!duplicateNote){
notes.push({
title:title,
body:body
})
saveNotes(notes)
console.log(chalk.green.inverse("New Note added"))
}
else{
console.log(chalk.red.inverse('Note title taken'))
}
}
// Saving notes
const saveNotes=(notes)=>{
const dataJSON=JSON.stringify(notes)
fs.writeFileSync('notes.json',dataJSON)
}
// Removing notes
const removeNotes=(title)=>{
const notes=loadNotes()
const noteToRemove=notes.filter(n=>n.title!==title)
if(notes.length>noteToRemove.length){
console.log(chalk.green.inverse('Note removed'))
saveNotes(noteToRemove)
}
else{
console.log(chalk.red.inverse("No note found!"))
}
}
// Read Note
const readNote=(title)=>{
const notes=loadNotes()
const noteToRead=notes.find(note=>note.title===title)
if(noteToRead){
console.log(chalk.inverse.magenta(noteToRead.title))
}
else{
console.log(chalk.red.inverse("Error"))
}
}
const listNotes=()=>{
console.log(chalk.blue.inverse("Your Notes"))
const notes=loadNotes()
notes.forEach(note => {
console.log(note.title)
});
}
// Loading notes
const loadNotes=()=>{
try {
const dataBuffer=fs.readFileSync('notes.json')
const dataJSON=dataBuffer.toString()
return JSON.parse(dataJSON)
} catch (error) {
return []
}
}
module.exports={
addNotes:addNotes,
getNotes:getNotes,
removeNotes:removeNotes,
listNotes:listNotes,
readNote:readNote
}