sicua
Version:
A tool for analyzing project structure and dependencies
67 lines (66 loc) • 1.52 kB
TypeScript
export interface INodeData {
label: string;
fullPath: string;
directory: string;
fileType?: string;
isNextRoute?: boolean;
routeType?: string;
isComponent?: boolean;
hasClientDirective?: boolean;
hasServerDirective?: boolean;
}
export interface IEdgeData {
label?: string;
type?: "import" | "export" | "dynamic";
}
export interface INode {
id: string;
type?: string;
position: {
x: number;
y: number;
};
data: INodeData;
parentNode?: string;
extent?: "parent" | [[number, number], [number, number]];
}
export interface IEdge {
id: string;
source: string;
target: string;
data?: IEdgeData;
type?: string;
animated?: boolean;
style?: Record<string, string | number>;
markerEnd?: {
type: string;
color?: string;
};
}
export interface IDiagramData {
nodes: INode[];
edges: IEdge[];
version?: string;
}
export interface ZombieClusterInfo {
id: string;
components: string[];
entryPoints: string[];
functions: {
[componentName: string]: string[];
};
size: number;
risk: "high" | "medium" | "low";
suggestion: string;
}
export interface ZombieClusterAnalysisResult {
zombieClusterGraph: IDiagramData;
clusters: ZombieClusterInfo[];
stats: {
totalClusters: number;
totalZombieComponents: number;
largestCluster: number;
entryPointsCount: number;
avgComponentsPerCluster: number;
};
}