Browse Source

fix: resolve pre-existing TypeScript build errors

Fix nanoBananaExecutor narrowing issue where promptText was narrowed
to `never` after type guard, and fix addEdge type mismatch where
Edge<T> data can be undefined but addEdge expects it defined.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
handoff-20260429-1057
shrimbly 5 months ago
parent
commit
66d231854c
  1. 5
      src/store/execution/nanoBananaExecutor.ts
  2. 55
      src/store/workflowStore.ts

5
src/store/execution/nanoBananaExecutor.ts

@ -65,8 +65,9 @@ export async function executeNanoBanana(
// Defensive: ensure promptText is actually a string at runtime // Defensive: ensure promptText is actually a string at runtime
// (Guards against corrupted node data or race conditions in parallel execution) // (Guards against corrupted node data or race conditions in parallel execution)
if (promptText !== null && typeof promptText !== 'string') { if (promptText !== null && typeof promptText !== 'string') {
console.warn('[nanoBanana] promptText was not a string, coercing:', typeof promptText, Array.isArray(promptText) ? `<redacted array length=${promptText.length}>` : '<redacted>'); const raw: unknown = promptText;
promptText = Array.isArray(promptText) ? (promptText as string[])[0] ?? null : null; console.warn('[nanoBanana] promptText was not a string, coercing:', typeof raw, Array.isArray(raw) ? `<redacted array length=${raw.length}>` : '<redacted>');
promptText = Array.isArray(raw) ? (raw as string[])[0] ?? null : null;
} }
if (!promptText) { if (!promptText) {

55
src/store/workflowStore.ts

@ -533,39 +533,36 @@ export const useWorkflowStore = create<WorkflowStore>((set, get) => ({
}, },
onConnect: (connection: Connection, edgeDataOverrides?: Record<string, unknown>) => { onConnect: (connection: Connection, edgeDataOverrides?: Record<string, unknown>) => {
set((state) => ({ set((state) => {
edges: addEdge( const baseData = buildConnectionEdgeData(connection, state.nodes, state.edges);
(() => { const newEdge = {
const baseData = buildConnectionEdgeData(connection, state.nodes, state.edges); ...connection,
return { id: `edge-${connection.source}-${connection.target}-${connection.sourceHandle || "default"}-${connection.targetHandle || "default"}`,
...connection, data: edgeDataOverrides ? { ...baseData, ...edgeDataOverrides } : baseData,
id: `edge-${connection.source}-${connection.target}-${connection.sourceHandle || "default"}-${connection.targetHandle || "default"}`, };
data: edgeDataOverrides ? { ...baseData, ...edgeDataOverrides } : baseData, // Cast needed: React Flow's Edge<T> types data as T | undefined, but addEdge expects data to be defined
}; return {
})(), edges: addEdge(newEdge, state.edges as never) as WorkflowEdge[],
state.edges hasUnsavedChanges: true,
), };
hasUnsavedChanges: true, });
}));
get().incrementManualChangeCount(); get().incrementManualChangeCount();
}, },
addEdgeWithType: (connection: Connection, edgeType: string, edgeDataOverrides?: Record<string, unknown>) => { addEdgeWithType: (connection: Connection, edgeType: string, edgeDataOverrides?: Record<string, unknown>) => {
set((state) => ({ set((state) => {
edges: addEdge( const baseData = buildConnectionEdgeData(connection, state.nodes, state.edges);
(() => { const newEdge = {
const baseData = buildConnectionEdgeData(connection, state.nodes, state.edges); ...connection,
return { id: `edge-${connection.source}-${connection.target}-${connection.sourceHandle || "default"}-${connection.targetHandle || "default"}`,
...connection, type: edgeType,
id: `edge-${connection.source}-${connection.target}-${connection.sourceHandle || "default"}-${connection.targetHandle || "default"}`, data: edgeDataOverrides ? { ...baseData, ...edgeDataOverrides } : baseData,
type: edgeType, };
data: edgeDataOverrides ? { ...baseData, ...edgeDataOverrides } : baseData, return {
}; edges: addEdge(newEdge, state.edges as never) as WorkflowEdge[],
})(), hasUnsavedChanges: true,
state.edges };
), });
hasUnsavedChanges: true,
}));
}, },
removeEdge: (edgeId: string) => { removeEdge: (edgeId: string) => {

Loading…
Cancel
Save