Como fetch-node utilizado no curso ficou desatualizado, precisei usar o modulo https para fazer as requisiçoes. No código abaixo, eu não estou conseguindo ter o retorno desajdo na função checaStatus, não consigo passar o statusCode de cada requisição para a const request: http-validacao
/* const fetch =
(...args) => import('node-fetch')
.then(({default: fetch}) => fetch(...args)); */
const https = require('https');
const { url } = require('inspector');
async function checaStatus(arrayURLs) {
/* promises async await */
const arrayStatus = await Promise.all(arrayURLs.map(async url => {
const request = await https.get(url, (res) => {
console.log("res.statusCode", res.statusCode); //imprime o statusCode certinho!!
})
console.log(request); ///imprime um monte de dados e sem o statusCode
return request;
}))
return arrayStatus;
}
function geraArrayURLs(arrayLinks) {
/* loop para cada {chave: valor} */
/* objeto -> [valor]*/
/* Object.values(objeto) */
return arrayLinks.map(objetoLink => Object.values(objetoLink).join());
}
async function validaURLs(arrayLinks) {
const links = geraArrayURLs(arrayLinks);
const statusLinks = await checaStatus(links);
return statusLinks;
}
module.exports = validaURLs;
O statusCode correto fica apenas dentro do callback da ultima arrow function.