From cac28ce237c2f61d5f7e678472158c2453917bea Mon Sep 17 00:00:00 2001 From: Wenderson Pires Date: Sat, 11 May 2024 15:54:16 -0300 Subject: [PATCH] fixed issue where new deeper files were not being injected causing an issue while compiling new changes. --- lib/actions/loadCachedFilesInfo.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/actions/loadCachedFilesInfo.js b/lib/actions/loadCachedFilesInfo.js index 619b22e..84d716e 100644 --- a/lib/actions/loadCachedFilesInfo.js +++ b/lib/actions/loadCachedFilesInfo.js @@ -8,14 +8,18 @@ const checkForWildcardImports = require("../parsers/checkForWildcardImports"); /** * Gera um esquema com os arquivos sendo importados no projeto a partir de um ponto de entrada - * @param {*} changedFilePath + * @param {*} changedFilePath Diretório do arquivo alterado + * @param {*} previousFilesInfo Isto é usado quando "loadCachedFilesInfo" é chamado recursivamente, + * neste caso ele vai sempre estar com a lista de esquemas atualizadas antes de sofrer o próximo + * processo para inserir um arquivo dependente que ainda não tinha sido inserido * @returns */ -const loadCachedFilesInfo = (changedFilePath) => { - // TODO: testar o erro que acontece quando um arquivo é removido do import (resolvido?!) +const loadCachedFilesInfo = (changedFilePath, previousFilesInfo) => { let hasError = null; const filesInfoRaw = fs.readFileSync(path.join(`./build/filesInfo.json`)); - const filesInfo = JSON.parse(filesInfoRaw); + const filesInfo = previousFilesInfo + ? previousFilesInfo + : JSON.parse(filesInfoRaw); const changedFileSchema = loadFilesInfo(changedFilePath, true).fileSchemas[0]; // Verifica cada arquivo jsx e ts para ver se estão quebrados ou não. @@ -50,6 +54,8 @@ const loadCachedFilesInfo = (changedFilePath) => { // para mudar o nome deles dentro deste arquivo alterado. let changedFileImportsName = {}; + console.log("A", changedFileSchema.toImport); + changedFileSchema.toImport.forEach((toImportFile) => { // ex: toImportFile = caminho/arquivo/file.ts let toImportSchemaRef = filesInfo.find( @@ -63,7 +69,10 @@ const loadCachedFilesInfo = (changedFilePath) => { // Se nao existir o arquivo no esquema, processa ele para tratar tudo (como nomes) // Depois adiciona-o à lista de filesInfo // INFO: recursividade - const updatedFileSchemasCall = loadCachedFilesInfo(toImportFile); + const updatedFileSchemasCall = loadCachedFilesInfo( + toImportFile, + filesInfo, + ); hasError = updatedFileSchemasCall.hasError; // Se tiver erro desse processo recursivo, nao segue em frente