archunit
Version:
ArchUnit TypeScript is an architecture testing library, to specify and assert architecture rules in your TypeScript app
43 lines (42 loc) • 1.4 kB
TypeScript
import * as ts from 'typescript';
import { ClassInfo } from './interface';
import { CheckOptions } from '../../common';
/**
* Enhanced class information including abstractness and dependency data
*/
export interface EnhancedClassInfo extends ClassInfo {
isAbstract: boolean;
isInterface: boolean;
abstractMethods: string[];
dependencies: ClassDependencyInfo;
}
/**
* Dependency information for a class/file
*/
export interface ClassDependencyInfo {
efferentCoupling: number;
afferentCoupling: number;
outgoingDependencies: string[];
incomingDependencies: string[];
}
/**
* File-level analysis result for distance metrics
*/
export interface FileAnalysisResult {
filePath: string;
classes: EnhancedClassInfo[];
interfaces: number;
abstractClasses: number;
concreteClasses: number;
totalTypes: number;
dependencies: ClassDependencyInfo;
sourceFile?: ts.SourceFile;
}
/**
* Extracts class information from TypeScript source files for metrics calculation
*/
export declare function extractClassInfo(configFileName?: string, projectPath?: string, options?: CheckOptions): ClassInfo[];
/**
* Enhanced class information extraction with abstractness and dependency analysis
*/
export declare function extractEnhancedClassInfo(tsConfigFilePath?: string, projectPath?: string, options?: CheckOptions): Promise<FileAnalysisResult[]>;