@rayburst/cli 0.3.7 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -671,26 +671,29 @@ function detectConfigBasedComponents(sourceFile, nodes, nodeMap, edges, projectP
|
|
|
671
671
|
const routerNode = createRouterDecisionNode(relativePath, gitHash, componentPaths.length);
|
|
672
672
|
nodes.push(routerNode);
|
|
673
673
|
nodeMap.set(routerNode.id, routerNode);
|
|
674
|
-
console.log(`[DEBUG] Created router node: ${routerNode.id}`);
|
|
675
674
|
const routerProviderExternalId = "external::@tanstack/react-router::RouterProvider";
|
|
676
675
|
const routerProviderNode = externalNodeMap.get(routerProviderExternalId);
|
|
677
676
|
if (routerProviderNode) {
|
|
678
677
|
const providerToRouterEdgeId = `e-${routerProviderNode.id}-${routerNode.id}`;
|
|
679
678
|
if (!edges.find((e) => e.id === providerToRouterEdgeId)) {
|
|
680
|
-
|
|
679
|
+
const newEdge = {
|
|
681
680
|
id: providerToRouterEdgeId,
|
|
682
681
|
source: routerProviderNode.id,
|
|
683
682
|
target: routerNode.id,
|
|
684
683
|
type: "floating",
|
|
685
684
|
label: "router prop"
|
|
686
|
-
}
|
|
685
|
+
};
|
|
686
|
+
edges.push(newEdge);
|
|
687
687
|
totalEdgesCreated++;
|
|
688
|
-
console.log(`[
|
|
689
|
-
console.log(`[
|
|
690
|
-
console.log(`[
|
|
688
|
+
console.log(`[ROUTER-EDGE] Created edge from RouterProvider to Router`);
|
|
689
|
+
console.log(`[ROUTER-EDGE] Edge ID: ${newEdge.id}`);
|
|
690
|
+
console.log(`[ROUTER-EDGE] Source: ${newEdge.source}`);
|
|
691
|
+
console.log(`[ROUTER-EDGE] Target: ${newEdge.target}`);
|
|
692
|
+
console.log(`[ROUTER-EDGE] Total edges now: ${edges.length}`);
|
|
691
693
|
}
|
|
692
694
|
} else {
|
|
693
|
-
console.warn("[
|
|
695
|
+
console.warn("[ROUTER-EDGE] RouterProvider external node NOT FOUND in externalNodeMap");
|
|
696
|
+
console.warn("[ROUTER-EDGE] Available external nodes:", Array.from(externalNodeMap.keys()));
|
|
694
697
|
const appToRouterEdgeId = `e-${sourceNode.id}-${routerNode.id}`;
|
|
695
698
|
if (!edges.find((e) => e.id === appToRouterEdgeId)) {
|
|
696
699
|
edges.push({
|
|
@@ -701,20 +704,60 @@ function detectConfigBasedComponents(sourceFile, nodes, nodeMap, edges, projectP
|
|
|
701
704
|
label: "router prop"
|
|
702
705
|
});
|
|
703
706
|
totalEdgesCreated++;
|
|
704
|
-
console.log(`[DEBUG] Created edge: App -> Router (fallback)`);
|
|
705
707
|
}
|
|
706
708
|
}
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
"
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
709
|
+
let decisionNodesCreated = 0;
|
|
710
|
+
let decisionEdgesCreated = 0;
|
|
711
|
+
for (const routeFilePath of componentPaths) {
|
|
712
|
+
const routePath = extractRoutePathFromFile(routeFilePath);
|
|
713
|
+
const isDynamic = routePath.includes(":");
|
|
714
|
+
const decisionNodeId = `${routerNode.id}::decision::${routePath.replace(/[/:]/g, "_")}`;
|
|
715
|
+
const decisionNode = {
|
|
716
|
+
id: decisionNodeId,
|
|
717
|
+
type: "conditional",
|
|
718
|
+
position: { x: 800, y: 400 + decisionNodesCreated * 100 },
|
|
719
|
+
data: {
|
|
720
|
+
label: isDynamic ? `matches "${routePath}"` : `path === "${routePath}"`,
|
|
721
|
+
description: `Route condition for ${routePath}`,
|
|
722
|
+
condition: isDynamic ? `pathname.matches("${routePath}")` : `pathname === "${routePath}"`,
|
|
723
|
+
trueLabel: "render",
|
|
724
|
+
falseLabel: "skip"
|
|
725
|
+
}
|
|
726
|
+
};
|
|
727
|
+
nodes.push(decisionNode);
|
|
728
|
+
nodeMap.set(decisionNode.id, decisionNode);
|
|
729
|
+
decisionNodesCreated++;
|
|
730
|
+
const routerToDecisionEdgeId = `e-${routerNode.id}-${decisionNode.id}`;
|
|
731
|
+
if (!edges.find((e) => e.id === routerToDecisionEdgeId)) {
|
|
732
|
+
edges.push({
|
|
733
|
+
id: routerToDecisionEdgeId,
|
|
734
|
+
source: routerNode.id,
|
|
735
|
+
target: decisionNode.id,
|
|
736
|
+
type: "floating",
|
|
737
|
+
label: routePath
|
|
738
|
+
});
|
|
739
|
+
decisionEdgesCreated++;
|
|
740
|
+
}
|
|
741
|
+
const targetNodes = findNodesInFile(routeFilePath, nodeMap);
|
|
742
|
+
for (const targetNode of targetNodes) {
|
|
743
|
+
if (targetNode.type !== "component") {
|
|
744
|
+
continue;
|
|
745
|
+
}
|
|
746
|
+
const decisionToComponentEdgeId = `e-${decisionNode.id}-${targetNode.id}`;
|
|
747
|
+
if (!edges.find((e) => e.id === decisionToComponentEdgeId)) {
|
|
748
|
+
edges.push({
|
|
749
|
+
id: decisionToComponentEdgeId,
|
|
750
|
+
source: decisionNode.id,
|
|
751
|
+
target: targetNode.id,
|
|
752
|
+
type: "floating",
|
|
753
|
+
label: "true"
|
|
754
|
+
});
|
|
755
|
+
decisionEdgesCreated++;
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
console.log(`[ROUTER] Created ${decisionNodesCreated} decision nodes and ${decisionEdgesCreated} edges`);
|
|
760
|
+
totalEdgesCreated += decisionEdgesCreated;
|
|
718
761
|
} else {
|
|
719
762
|
console.log(`[DEBUG] Creating edges for ${componentPaths.length} components`);
|
|
720
763
|
const edgesCreated = createConfigBasedEdges(
|
|
@@ -807,6 +850,18 @@ async function analyzeProject(projectPath, projectId, onLog) {
|
|
|
807
850
|
log(` Generated ${totalConfigEdges} additional edges from config analysis`);
|
|
808
851
|
}
|
|
809
852
|
log(` Total edges: ${edges.length}`);
|
|
853
|
+
const routerProviderEdge = edges.find((e) => e.source === "external::@tanstack/react-router::RouterProvider");
|
|
854
|
+
if (routerProviderEdge) {
|
|
855
|
+
console.log(`[FINAL-CHECK] \u2713 RouterProvider edge EXISTS in final edges array`);
|
|
856
|
+
console.log(`[FINAL-CHECK] Edge: ${routerProviderEdge.source} -> ${routerProviderEdge.target}`);
|
|
857
|
+
} else {
|
|
858
|
+
console.warn(`[FINAL-CHECK] \u2717 RouterProvider edge NOT FOUND in final edges array`);
|
|
859
|
+
console.warn(`[FINAL-CHECK] Checking all edges with 'RouterProvider' in source or target...`);
|
|
860
|
+
const relatedEdges = edges.filter(
|
|
861
|
+
(e) => e.source.includes("RouterProvider") || e.target.includes("RouterProvider") || e.source.includes("RouterDecision") || e.target.includes("RouterDecision")
|
|
862
|
+
);
|
|
863
|
+
console.warn(`[FINAL-CHECK] Found ${relatedEdges.length} related edges:`, relatedEdges.map((e) => `${e.source} -> ${e.target}`));
|
|
864
|
+
}
|
|
810
865
|
const packageJsonPath = path2.join(projectPath, "package.json");
|
|
811
866
|
let packageJson = { name: path2.basename(projectPath) };
|
|
812
867
|
if (fs.existsSync(packageJsonPath)) {
|
package/dist/index.js
CHANGED
package/dist/vite-plugin.js
CHANGED