1
resposta

olá, alguém poderia me explicar como esse script funciona ?

Enquanto eu testava e executava o que foi visto nesse curso me deparei com o seguinte código:

import fs from 'fs';
import path from 'path';

const comando = process.argv;
const caminho = path.posix.resolve(comando[2]);

async function listarArquivos (diretoril, arquivos) {
    if (!arquivos) 
        arquivos = [];
        const listaDeArquivos = await fs.promises.readdir(diretoril);

        for (let k in listaDeArquivos) {

            let stat = await fs.promises.stat(`${diretoril}/${listaDeArquivos[k]}`);
            if (stat.isDirectory()) {
                await listarArquivos(`${diretoril}/${listaDeArquivos[k]}`, arquivos)
            } else {
                arquivos.push(`${diretoril}/${listaDeArquivos[k]}`)
            }

        }

        return arquivos

}

async function mostrar () {
    const arquivosFinais = await listarArquivos(caminho)

    const file = await arquivosFinais.map(caminho => {
        const file = path.basename(caminho)
        return file
    }).sort((a, b) => {
        if (a > b) {
            return 1
        }
        if (a < b) {
            return -1
        }
        if (a == b) {
            return 0
        }
    })

    console.log(file)
}

mostrar()

e não entendi muito bem o motivo do:

if (!arquivos)

sei que não é bem uma duvida ligada diretamente ao curso, porém, acredito que agrega muito tanto ao mim quanto aos demais, deis de já agradeço.

1 resposta
if (false)
  console.log("Eu só vou aparecer se a condicional for true")
  console.log("Eu sempre vou aparecer")

Então:

    if (!arquivos) 
        arquivos = [];
`

Está dizendo algo como "Se arquivos não existir ou não estiver definido, coloca um array vazia nele".