Após fazer o passo a passo, criar o packages.json e adicionar o "type": "module",, exportar e importar as funções, ao executar node src/cli.js arquivos/texto-web.txt não aparece nada, já indo pelo "caminho infeliz" retorna o erro.
./src/index.js
export function contaPalavras(texto) {
const paragrafos = extraiParagrafos(texto)
const contagem = paragrafos.flatMap((paragrafo) => {
if (!paragrafo) return [];
return verificaPalavrasDuplicadas(paragrafo);
})
console.log(contagem);
}
function extraiParagrafos(texto) {
return paragrafos = texto.toLowerCase().split('\n');
}
function limpaPalavras(palavra) {
return palavra.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g, '' );
}
function verificaPalavrasDuplicadas(texto) {
const listaPalavras = texto.split(' ');
const resultado = {};
listaPalavras.forEach((palavra) => {
if (palavra.length >= 3 ) {
const palavraLimpa = limpaPalavras(palavra);
resultado[palavraLimpa] = (resultado[palavraLimpa] || 0) + 1
}
})
return resultado;
}
./src/cli.js
import fs from 'fs';
import trataErros from './erros/funcoesErro.js';
import { contaPalavras } from './index.js'
const caminhoArquivo = process.argv;
const link = caminhoArquivo[2];
fs.readFile(link, 'utf-8', (erro, texto) => {
try {
if (erro) throw erro
contaPalavras(texto);
} catch(erro) {
trataErros(erro);
}
})
./src/erros/funcoesErro.js
export default function trataErros(erro) {
if (erro.code === 'ENOENT') {
throw new Error('Arquivo não encontrado');
} else {
return 'Erro na aplicação';
}
}
./package.json
{
"name": "nodejs-lib",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
https://github.com/daviomce/06---JavaScript-com-NodeJS---Criando--1a-Biblioteca