diff --git a/src/frontend/src/utils/buildUtils.ts b/src/frontend/src/utils/buildUtils.ts index 10753ce15..acd145dc5 100644 --- a/src/frontend/src/utils/buildUtils.ts +++ b/src/frontend/src/utils/buildUtils.ts @@ -1,7 +1,7 @@ import { AxiosError } from "axios"; import { getVerticesOrder, postBuildVertex } from "../controllers/API"; -import { FlowType } from "../types/flow"; import { VertexBuildTypeAPI } from "../types/api"; +import { FlowType } from "../types/flow"; type BuildVerticesParams = { flow: FlowType; // Assuming FlowType is the type for your flow @@ -22,52 +22,55 @@ export async function buildVertices({ }: BuildVerticesParams) { let orderResponse = await getVerticesOrder(flow.id); let verticesOrder: Array> = orderResponse.data.ids; - let vertices : Array> = []; + let vertices: Array> = []; if (nodeId) { for (let i = 0; i < verticesOrder.length; i += 1) { const innerArray = verticesOrder[i]; const idIndex = innerArray.indexOf(nodeId); - + if (idIndex !== -1) { // If the targetId is found in the inner array, cut the array before the id vertices.push(innerArray.slice(0, idIndex + 1)); break; // Stop searching after finding the first occurrence } // If the targetId is not found, include the entire inner array - vertices.push(innerArray); + vertices.push(innerArray); } } - + const buildResults: Array = []; for (let i = 0; i < vertices.length; i += 1) { await Promise.all( - vertices[i].map(async (id) => { - try { - const buildRes = await postBuildVertex(flow, id); - const buildData: VertexBuildTypeAPI = buildRes.data; - if (onBuildUpdate) { - let data = {}; - if (!buildData.valid) { - if (onBuildError) { - onBuildError("Error Building Component", [buildData.params]) - } - data[buildData.id] = buildData; + vertices[i].map(async (id) => { + try { + const buildRes = await postBuildVertex(flow, id); + const buildData: VertexBuildTypeAPI = buildRes.data; + if (onBuildUpdate) { + let data = {}; + if (!buildData.valid) { + if (onBuildError) { + onBuildError("Error Building Component", [buildData.params]); + } + data[buildData.id] = buildData; - onBuildUpdate({ data, id: buildData.id }); + onBuildUpdate({ data, id: buildData.id }); + } + } + buildResults.push(buildData.valid); + if (onBuildComplete) { + const allNodesValid = buildResults.every((result) => result); + onBuildComplete(allNodesValid); + } + } catch (error) { + if (onBuildError) { + console.log(error); + onBuildError("Error Building Component", [ + (error as AxiosError).response?.data?.detail ?? + "Unknown Error", + ]); } } - buildResults.push(buildData.valid); - if (onBuildComplete) { - const allNodesValid = buildResults.every((result) => result); - onBuildComplete(allNodesValid); - } - } catch (error) { - if (onBuildError) { - console.log(error) - onBuildError("Error Building Component", [(error as AxiosError).response?.data?.detail??"Unknown Error"]); - } - } - }) - ) + }) + ); } -} \ No newline at end of file +}