-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
53 lines (44 loc) · 1.53 KB
/
index.js
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
const chalk = require('chalk');
const fs = require('fs');
const path = require('path');
function tratarErro(erro){
throw new Error(chalk.red(erro.code, 'Arquivo não encontrado!'));
}
// function pegaArquivo(caminhoDoArquivo){
// const encoding = 'utf-8';
// fs.promises.readFile(caminhoDoArquivo, encoding)
// .then(dados => console.log(chalk.green(dados)))
// .catch(erro => console.log(erro.message));
// }
function extraiLinks(texto){
const regex = /\[([^\]]*)\]\((https?:\/\/[^&$#\s].[^\s]*)\)/gm;
const arrayResultados = [];
let temp;
while((temp = regex.exec(texto)) !== null){
arrayResultados.push({ [temp[1]]: temp[2] });
}
//const result = regex.exec(texto);
return arrayResultados.length === 0 ? 'Não há links' : arrayResultados;
}
async function pegaDadosTudo(caminhoDoArquivo){
const encoding = 'utf-8';
try{
let response = await fs.promises.readFile(caminhoDoArquivo, encoding); //promises é como uma função assincrona. await = then
//console.log(chalk.blueBright(response));
return extraiLinks(response);
} catch(e){
tratarErro(e.message);
}
}
// function pegaArquivo(caminhoDoArquivo){
// const encoding = 'utf-8';
// fs.readFile(caminhoDoArquivo, encoding, function(erro, dados){
// if(erro){
// tratarErro(erro);
// }
// console.log(chalk.green(dados));
// })
// }
//pegaArquivo('./arquivos/texto1.md');
//pegaDadosTudo('./arquivos/texto1.md');
module.exports = pegaDadosTudo;