From 2502a37c08b78dfdeaadb21c968dbd3bc9dadd2e Mon Sep 17 00:00:00 2001 From: nftchance Date: Fri, 16 Feb 2024 19:39:13 -0600 Subject: [PATCH] fix: missing artifacts folder bug --- src/lib/functions/artifacts.ts | 9 ++++++++- src/lib/functions/references.ts | 36 ++++++++++++++++++--------------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/lib/functions/artifacts.ts b/src/lib/functions/artifacts.ts index a950be6..f467835 100644 --- a/src/lib/functions/artifacts.ts +++ b/src/lib/functions/artifacts.ts @@ -6,6 +6,13 @@ import { defineConfig } from '@/core/engine/config' async function getJsonFilesInDirectory(directory: string) { let jsonFiles: Array = [] + // Ensure the directory exists + const exists = await fse.pathExists(directory) + + if (!exists) { + return jsonFiles + } + // Read the directory content const filesAndDirs = await fse.readdir(directory) @@ -62,7 +69,7 @@ export async function getArtifacts( name, abi: JSON.stringify(abi), bytecode, - deployedBytecode + deployedBytecode } }) ) diff --git a/src/lib/functions/references.ts b/src/lib/functions/references.ts index c3eace9..3bef3b1 100644 --- a/src/lib/functions/references.ts +++ b/src/lib/functions/references.ts @@ -109,27 +109,31 @@ const generateDynamicReferences = ({ source = source.replace('{{', '{') source = source.replace('}}', '}') - const contractSources = JSON.parse(source).sources as { - [key: string]: { content: string } - } + try { + const contractSources = JSON.parse(source).sources as { + [key: string]: { content: string } + } - Object.entries(contractSources).forEach(([sourceKey, value]) => { - const directory = `./src/references/${name}/${sourceKey - .replace('./', '') - .split('/') - .slice(0, -1) - .join('/')}` + Object.entries(contractSources).forEach(([sourceKey, value]) => { + const directory = `./src/references/${name}/${sourceKey + .replace('./', '') + .split('/') + .slice(0, -1) + .join('/')}` - const filename = sourceKey.replace('./', '').split('/').slice(-1)[0] + const filename = sourceKey.replace('./', '').split('/').slice(-1)[0] - fse.mkdirSync(directory, { - recursive: true - }) + fse.mkdirSync(directory, { + recursive: true + }) - fse.writeFileSync(`${directory}/${filename}`, value.content) + fse.writeFileSync(`${directory}/${filename}`, value.content) - logger.info(`Generated ${directory}/${filename}`) - }) + logger.info(`Generated ${directory}/${filename}`) + }) + } catch (error) { + logger.error(`Failed to parse the source code for ${name}.`) + } } export const generateReferences = async <