UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

120 lines (119 loc) 3.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNodeColor = getNodeColor; exports.getEdgeColor = getEdgeColor; exports.getNodeSize = getNodeSize; exports.getEdgeSize = getEdgeSize; /** * Get a color for a node based on its type */ function getNodeColor(nodeProps) { // Priority color assignment // Dynamic route segments get highest priority if (nodeProps.isDynamicRoute) { if (nodeProps.routeType === "optional-catch-all") { return "#9C27B0"; // Purple for optional catch-all routes } else if (nodeProps.routeType === "catch-all") { return "#673AB7"; // Deep purple for catch-all routes } else { return "#E91E63"; // Pink for dynamic routes } } // Then Next.js route files if (nodeProps.isNextRoute) { // Different colors based on route type switch (nodeProps.routeType) { case "page": return "#4CAF50"; // Green for page case "layout": return "#00BCD4"; // Cyan for layout case "loading": return "#FFC107"; // Amber for loading case "error": return "#F44336"; // Red for error case "not-found": return "#FF9800"; // Orange for not-found case "api": return "#3F51B5"; // Indigo for API routes case "default": return "#009688"; // Teal for default default: return "#4CAF50"; // Default green for other route files } } // Then React components else if (nodeProps.isComponent) { return "#2196F3"; // Blue for components } // Then directories else if (nodeProps.routeType === "directory") { return "#9E9E9E"; // Gray for directories } // Default color for other files return "#757575"; // Dark gray default } /** * Get a color for an edge based on its type */ function getEdgeColor(type) { switch (type) { case "import": return "#666666"; // Dark gray for imports case "export": return "#FF5722"; // Orange for exports case "dynamic": return "#9C27B0"; // Purple for dynamic imports case "parent-child": return "#BDBDBD"; // Light gray for structure default: return "#BDBDBD"; // Light gray default } } /** * Get a node size based on its type */ function getNodeSize(nodeProps) { // Dynamic routes get slightly larger size if (nodeProps.isDynamicRoute) { return 9; } // Differentiate sizes by node type if (nodeProps.isNextRoute) { switch (nodeProps.routeType) { case "page": return 8; case "layout": return 8; case "api": return 7; default: return 6; } } else if (nodeProps.isComponent) { return 6; // Standard size for components } else if (nodeProps.routeType === "directory") { return 5; // Smaller for directories } return 4; // Default smaller size for utility files } /** * Get an edge size based on its type */ function getEdgeSize(type) { switch (type) { case "import": return 1.5; case "export": return 2; case "dynamic": return 1; case "parent-child": return 0.8; // Thinner for structure default: return 1; } }