UNPKG

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
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[]>;