import type { Edge, Node } from '@xyflow/svelte'; export const getNodesAssociatedWith = (nodeId: string, allNodes: Node[], allEdges: Edge[]) => { const nodeIdsToDelete = new Set(); const queue = [nodeId]; while (queue.length > 0) { const currentId = queue.shift()!; const outgoingEdges = allEdges.filter((e) => e.source === currentId); for (const edge of outgoingEdges) { if (!nodeIdsToDelete.has(edge.target)) { nodeIdsToDelete.add(edge.target); queue.push(edge.target); } } } return allNodes.filter((node) => nodeIdsToDelete.has(node.id)); };