🐛 fix(buildUtils.ts): refactor buildVertices function to improve readability and error handling

The buildVertices function has been refactored to improve readability and error handling. Instead of using Promise.all with map, it now uses a for loop to iterate over the vertices and perform the build process for each vertex. This change allows for better error handling and reporting. Additionally, the onBuildError callback is now called with the correct parameters when there is an error building a component.
This commit is contained in:
cristhianzl 2024-02-20 15:08:19 -03:00
commit b4dbe90212

View file

@ -52,42 +52,34 @@ export async function buildVertices({
const buildResults: Array<boolean> = []; const buildResults: Array<boolean> = [];
for (let i = 0; i < vertices.length; i += 1) { for (let i = 0; i < vertices.length; i += 1) {
if (onBuildStart) onBuildStart(vertices[i]); if (onBuildStart) onBuildStart(vertices[i]);
await Promise.all( for (const id of vertices[i]) {
vertices[i].map(async (id) => { try {
try { const buildRes = await postBuildVertex(flowId, id);
// Set vertex state to building const buildData: VertexBuildTypeAPI = buildRes.data;
const buildRes = await postBuildVertex(flowId, id); if (onBuildUpdate) {
const buildData: VertexBuildTypeAPI = buildRes.data; let data = {};
if (onBuildUpdate) { if (!buildData.valid) {
let data = {}; onBuildError!(
if (!buildData.valid) {
if (onBuildError) {
onBuildError(
"Error Building Component",
[buildData.params],
verticesIds
);
}
}
data[buildData.id] = buildData;
onBuildUpdate({ data, id: buildData.id });
}
buildResults.push(buildData.valid);
} catch (error) {
if (onBuildError) {
console.log(error);
onBuildError(
"Error Building Component", "Error Building Component",
[ [buildData.params],
(error as AxiosError<any>).response?.data?.detail ??
"Unknown Error",
],
verticesIds verticesIds
); );
} }
data[buildData.id] = buildData;
onBuildUpdate({ data, id: buildData.id });
} }
}) buildResults.push(buildData.valid);
); } catch (error) {
onBuildError!(
"Error Building Component",
[
(error as AxiosError<any>).response?.data?.detail ??
"Unknown Error",
],
verticesIds
);
}
}
} }
if (onBuildComplete) { if (onBuildComplete) {
const allNodesValid = buildResults.every((result) => result); const allNodesValid = buildResults.every((result) => result);