diff --git a/.changeset/giant-terms-wash.md b/.changeset/giant-terms-wash.md new file mode 100644 index 0000000000..f873866a78 --- /dev/null +++ b/.changeset/giant-terms-wash.md @@ -0,0 +1,5 @@ +--- +"@latticexyz/common": patch +--- + +Improved surfacing of errors during code generation. diff --git a/packages/common/src/codegen/utils/formatAndWrite.ts b/packages/common/src/codegen/utils/formatAndWrite.ts index f315eddfd4..a01b5bf3c4 100644 --- a/packages/common/src/codegen/utils/formatAndWrite.ts +++ b/packages/common/src/codegen/utils/formatAndWrite.ts @@ -1,20 +1,27 @@ import fs from "node:fs/promises"; import path from "node:path"; import { formatSolidity, formatTypescript } from "./format"; -import { debug } from "../debug"; +import { debug, error } from "../debug"; /** * Formats solidity code using prettier and write it to a file - * @param output solidity code + * @param content solidity code * @param fullOutputPath full path to the output file * @param logPrefix prefix for debug logs */ -export async function formatAndWriteSolidity(output: string, fullOutputPath: string, logPrefix: string): Promise { - const formattedOutput = await formatSolidity(output); - +export async function formatAndWriteSolidity( + content: string, + fullOutputPath: string, + logPrefix: string, +): Promise { + let output = content; + try { + output = await formatSolidity(output); + } catch (e) { + error(`Error while attempting to format ${fullOutputPath}`, e); + } await fs.mkdir(path.dirname(fullOutputPath), { recursive: true }); - - await fs.writeFile(fullOutputPath, formattedOutput); + await fs.writeFile(fullOutputPath, output); debug(`${logPrefix}: ${fullOutputPath}`); }