-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnotes.js
More file actions
77 lines (68 loc) · 1.7 KB
/
Copy pathnotes.js
File metadata and controls
77 lines (68 loc) · 1.7 KB
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
const fs= require('fs')
const chalk=require('chalk')
const addNote= (title,body)=>{
const notes=loadNotes()
const dupicateNotes= notes.filter((note)=>note.title===title)
const dupicateNote= notes.find((note)=>note.title===title)
if(!dupicateNote){
notes.push(
{
title: title,
body: body
}
)
saveNotes(notes)
console.log(chalk.green.inverse('note saved!'))
}
else{
console.log(chalk.red.inverse('Title is taken!'))
}
}
const saveNotes= function(notes){
const dataJSON= JSON.stringify(notes)
fs.writeFileSync('notes.json',dataJSON)
}
const loadNotes= ()=>{
try{
const dataBuffer=fs.readFileSync('notes.json')
const dataJSON=dataBuffer.toString()
return JSON.parse(dataJSON)
}
catch(e){
return []
}
}
const removeNote=(title)=>{
const notes=loadNotes()
const noteToKeep=notes.filter((note)=> note.title!==title)
if(notes.length>noteToKeep.length){
saveNotes(noteToKeep)
console.log(chalk.green.inverse('Note removed successfully'))
}
else{
console.log(chalk.red.inverse('No matching notes found'))
}
console.log()
}
const listNotes =()=>{
console.log(chalk.blue.inverse('Here are your notes:'))
const notes= loadNotes()
notes.forEach(element => {console.log(element.title)
});
}
const readNote=(title)=>{
const notes=loadNotes()
const noteRead=notes.find((note)=>note.title===title)
if(noteRead){
console.log(chalk.inverse(noteRead.body))
}
else{
console.log(chalk.red.inverse('no note found with that title'))
}
}
module.exports={
addNote: addNote,
removeNote: removeNote,
listNotes:listNotes,
readNote: readNote
}