ruch
Version:
Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.
63 lines • 1.87 kB
TypeScript
import type { FileSystem } from './file-operations';
/**
* Types for graph data
*/
export interface GraphNode {
id: string;
label: string;
type?: 'core' | 'feature' | 'shared';
}
export interface GraphEdge {
source: string;
target: string;
type: 'direct-import' | 'indirect-import';
metadata: {
path: string;
line?: number;
};
}
export interface GraphData {
nodes: GraphNode[];
edges: GraphEdge[];
metadata: {
generatedAt: string;
projectPath: string;
totalDomains: number;
totalDependencies: number;
};
}
export interface DependencyInfo {
fromDomain: string;
toDomain: string;
filePath: string;
line: number;
importStatement: string;
}
/**
* Pure function to extract import statements from file content
*/
export declare const extractImportStatements: (content: string) => Array<{
statement: string;
line: number;
}>;
/**
* Pure function to determine if an import path refers to a domain
*/
export declare const extractDomainFromImportPath: (importPath: string, currentDomain: string) => string | null;
/**
* Pure function to get all TypeScript/JavaScript files in a directory recursively
*/
export declare const getSourceFiles: (fileSystem: FileSystem, dirPath: string) => Promise<string[]>;
/**
* Analyze dependencies for a single domain
*/
export declare const analyzeDomainDependencies: (fileSystem: FileSystem, domainPath: string, domainName: string) => Promise<DependencyInfo[]>;
/**
* Detect circular dependencies in the graph
*/
export declare const detectCircularDependencies: (edges: GraphEdge[]) => string[][];
/**
* Generate complete graph data for all domains
*/
export declare const generateGraphData: (fileSystem: FileSystem, projectRoot?: string) => Promise<GraphData>;
//# sourceMappingURL=dependency-analyzer.d.ts.map