- Створи репозиторій з назвою
goit-node-cli
, склонуй та ініціалізуй в ньому проєкт за допомогою командиnpm init
. Встанови як залежність проєкту пакетcommander
- В корінь проєкту помісти файли з папки src
- У файл
contacts.js
зроби імпорт модулівfs
(у версії, яка працює з промісами -fs/promises
) іpath
для роботи з файловою системою. - Створи змінну
contactsPath
і запиши в неї шлях до файлуcontacts.json
. Для складання шляху використовуй методи модуля path. - Додай асинхронні функції для роботи з колекцією контактів. У функціях використовуй модуль
fs
та його методиreadFile()
іwriteFile()
. Відповідні функції мають повертати необхідні дані за допомогою оператораreturn
. Вивід в консоль в написаних функціях здійснюватись не повинен. - Зроби експорт створених функцій.
// contacts.js
/*
* Розкоментуй і запиши значення
* const contactsPath = ;
*/
async function listContacts() {
// ...твій код. Повертає масив контактів.
}
async function getContactById(contactId) {
// ...твій код. Повертає об'єкт контакту з таким id. Повертає null, якщо контакт з таким id не знайдений.
}
async function removeContact(contactId) {
// ...твій код. Повертає об'єкт видаленого контакту. Повертає null, якщо контакт з таким id не знайдений.
}
async function addContact(name, email, phone) {
// ...твій код. Повертає об'єкт доданого контакту (з id).
}
- Зроби імпорт функцій з файла
contacts.js
в файлindex.js
. - Далі використовуй готову функцію invokeAction(), яка отримує тип виконуваної дії і необхідні аргументи. Функція має викликати відповідний метод з файлу
contacts.js
, передаючи йому необхідні аргументи. Результат роботи викликаної функції слід вивести в консоль.
Запусти команди в терміналі і переконайся, що код працює належним чином.