2
respostas

Retorno diferente nas funcoes de validar url

Olá, estou com um problema no meu código, e não estou conseguindo resolver. Nas funções do http-validate, quando testo com um console.log somente nesse script eu recebo o retorno correto de um array somente com os valores do objeto com os links, porém quando uso o npm run cli validate ele retorna o array de objetos apenas

Código do http-validation.js

function generateURLsArray(linksArray){
    let urlArray = [];
    linksArray.map((link) => {
        urlArray.push(Object.values(link));
    })

    // return linksArray.map(linkObject => Object.values(linkObject));
    return urlArray;
}

function validateURL(linksArray){
    return (generateURLsArray(linksArray));
}

export default validateURL;

Código do cli.js

import catchFile from "./index.js";
import chalk from 'chalk';
import validateURL from "./http-validation.js";

const path = process.argv;

async function handleText(filePath){
    const result = await catchFile(filePath[2]);

    if(path[3] === 'validate'){
        console.log(chalk.yellow('Validated Links'), validateURL(result));
    } else{
        console.log(chalk.yellow("List of Links"), result);
    }
}

handleText(path);
2 respostas

Retorno no console do node http-validation.js

Retorno no console do npm run cli validate

Olá, Gabriel! Tudo bem com você?

Peço desculpa pela demora para responder o seu tópico.

Pelo código que você compartilhou, parece que o problema está na forma como você está importando e usando a função validateURL no arquivo cli.js.

Ao importar a função validateURL de http-validation.js, você está chamando a função validateURL num console.log e passando o resultado como argumento para console.log. Isso significa que console.log irá imprimir o resultado da função validateURL como um objeto, em vez de imprimir o array de valores que você espera.

Uma solução para isso seria armazenar o resultado da função validateURL em uma variável antes de passá-la para console.log. Dessa forma, você poderá manipular o resultado como desejar antes de imprimi-lo.

Aqui está um exemplo de como você pode fazer isso no seu arquivo cli.js:

import catchFile from "./index.js";
import chalk from 'chalk';
import validateURL from "./http-validation.js";

const path = process.argv;

async function handleText(filePath){
    const result = await catchFile(filePath[2]);
    
    if(path[3] === 'validate'){
        const validatedLinks = validateURL(result);
        console.log(chalk.yellow('Validated Links'), validatedLinks);
    } else{
        console.log(chalk.yellow("List of Links"), result);
    }
}

handleText(path);

Dessa forma, você armazena o resultado da função validateURL na variável validatedLinks e, em seguida, passa essa variável para console.log.

Espero que isso resolva o seu problema. Se você tiver mais alguma dúvida, estarei à disposição!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software