my-own-words
Version:
A small tool that I have created to keep safe all those words/expressions that I come across when I'm learning a new language
80 lines (62 loc) • 1.6 kB
JavaScript
const fs = require('fs');
const os = require('os');
const home = os.homedir();
const route = `${home}\\.my-own-words`;
function dirExists() {
return fs.existsSync(route);
}
function createDir() {
return fs.mkdirSync(route);
}
function listExists(listName) {
return fs.existsSync(`${route}\\${listName}.json`);
}
function createFile(listName, extension = 'json') {
return fs.writeFileSync(
`${route}\\${listName}.${extension}`,
`${extension === 'json' ? '{}' : ''}`,
);
}
function getLists() {
return fs.readdirSync(route);
}
function removeList(listName) {
return fs.unlinkSync(`${route}\\${listName}.json`);
}
function getWords(listName) {
return fs.readFileSync(`${route}\\${listName}.json`).toString();
}
function parseWords(json) {
return JSON.parse(json);
}
function getAndParseWords(listName) {
return parseWords(getWords(listName));
}
function sortWords(words) {
const unsortedWords = Object.entries(words).sort();
const sortedWords = {};
unsortedWords.map(word => (sortedWords[word[0]] = word[1].sort()));
return sortedWords;
}
function saveWords(listName, words) {
return fs.writeFileSync(`${route}\\${listName}.json`, JSON.stringify(words));
}
function sortAndSaveWords(listName, words) {
return saveWords(listName, sortWords(words));
}
function saveIntoMarkdown(listName, word) {
return fs.appendFileSync(`${route}\\${listName}.md`, `${word}`);
}
module.exports = {
dirExists,
createDir,
listExists,
createFile,
getLists,
removeList,
getAndParseWords,
sortWords,
saveWords,
sortAndSaveWords,
saveIntoMarkdown,
};