Renato,
Eu não tenho a pasta src, mas fiz as seguintes alterações e funcionou da mesma forma.
Na função, coloquei aspas duplas no __dirname
async function pegaArquivo(caminho) {
const caminhoAbsoluto = path.join("__dirname", '..', caminho);
const encoding = 'utf-8';
try {
const arquivos = await fs.promises.readdir(caminhoAbsoluto, { encoding });
const result = await Promise.all(arquivos.map(async (arquivo) => {
const localArquivo = `${caminhoAbsoluto}/${arquivo}`;
const texto = await fs.promises.readFile(localArquivo, encoding);
return extraiLinks(texto);
}));
return result;
} catch (erro) {
return trataErro(erro);
}
}
E no script do package.json alterei o cli:
{
"name": "lib-markdown",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"cli": "node cli.js ./arquivos"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "module",
"dependencies": {
"chalk": "^5.0.1"
}
}
Dessa forma funcionou normalmente, com o adicional de que agora, se na pasta arquivos, você criar um outro arquivo.md, a função processaTexto() irá funcionar tanto para texto1.md quanto para arquivo.md . Espero que ajude.