UNPKG

archunit

Version:

ArchUnit TypeScript is an architecture testing library, to specify and assert architecture rules in your TypeScript app

51 lines (50 loc) 1.71 kB
import { Filter, Logger } from '../../common'; import { ClassInfo, Metric } from '../extraction'; import { MetricComparison } from './types'; import type { CheckOptions } from '../../common/fluentapi'; /** * Filter classes by class name using regex patterns */ export declare class ClassFilter { private readonly filter; constructor(filter: Filter); apply(classes: ClassInfo[], logger?: Logger, options?: CheckOptions): ClassInfo[]; getFilter(): Filter; } /** * Combine multiple filters with AND logic */ export declare class CompositeFilter { private readonly filters; constructor(filters: ClassFilter[]); apply(classes: ClassInfo[], logger?: Logger, options?: CheckOptions): ClassInfo[]; } /** * Projects class information to calculate specific metrics */ export interface MetricProjection { apply(classes: ClassInfo[]): { [className: string]: number; }; } /** * Creates a projection for a specific metric calculation * @param metricCalculation Function that calculates the metric for a single class */ export declare const projectToMetric: (metricCalculation: (classInfo: ClassInfo) => number) => MetricProjection; /** * Represents the result of a metric calculation for violation checking */ export interface MetricResult { className: string; filePath: string; metricName: string; metricValue: number; threshold: number; comparison: MetricComparison; isViolation: boolean; } /** * Projects class information into metric results for violation checking */ export declare function projectToMetricResults<T extends ClassInfo>(classes: T[], metric: Metric, threshold: number, comparison: MetricComparison): MetricResult[];