From f6c8750d15d6ebbf64ba07696e469dc72ebc7d3b Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Tue, 28 Jan 2025 09:28:38 -0300 Subject: [PATCH] fix: handle undefined data.outputs and outputName params in log utility functions (#5928) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 (utils.ts): Fix logic in logHasMessage, logTypeIsUnknown, and logTypeIsError functions to correctly handle cases where outputs may be undefined or empty arrays. --- src/frontend/src/utils/utils.ts | 37 ++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/frontend/src/utils/utils.ts b/src/frontend/src/utils/utils.ts index 8fbb2c513..005815062 100644 --- a/src/frontend/src/utils/utils.ts +++ b/src/frontend/src/utils/utils.ts @@ -460,39 +460,42 @@ export const logHasMessage = ( data: VertexDataTypeAPI, outputName: string | undefined, ) => { - if (!outputName) return; - const outputs = data?.outputs[outputName]; - if (Array.isArray(outputs) && outputs.length > 1) { - return outputs.some((outputLog) => outputLog.message); - } else { - return outputs?.message; + if (!outputName || !data?.outputs) return false; + const outputs = data.outputs[outputName]; + if (!outputs) return false; + + if (Array.isArray(outputs) && outputs.length > 0) { + return outputs.some((outputLog) => outputLog?.message); } + return outputs?.message; }; export const logTypeIsUnknown = ( data: VertexDataTypeAPI, outputName: string | undefined, ) => { - if (!outputName) return; - const outputs = data?.outputs[outputName]; - if (Array.isArray(outputs) && outputs.length > 1) { - return outputs.some((outputLog) => outputLog.type === "unknown"); - } else { - return outputs?.type === "unknown"; + if (!outputName || !data?.outputs) return false; + const outputs = data.outputs[outputName]; + if (!outputs) return false; + + if (Array.isArray(outputs) && outputs.length > 0) { + return outputs.some((outputLog) => outputLog?.type === "unknown"); } + return outputs?.type === "unknown"; }; export const logTypeIsError = ( data: VertexDataTypeAPI, outputName: string | undefined, ) => { - if (!outputName) return; - const outputs = data?.outputs[outputName]; - if (Array.isArray(outputs) && outputs.length > 1) { + if (!outputName || !data?.outputs) return false; + const outputs = data.outputs[outputName]; + if (!outputs) return false; + + if (Array.isArray(outputs) && outputs.length > 0) { return outputs.some((log) => isErrorLog(log)); - } else { - return isErrorLog(outputs); } + return isErrorLog(outputs); }; export function isEndpointNameValid(name: string, maxLength: number): boolean {