types/source.types.ts
types/source.types.ts is a file in GovLab Stats. 66 lines of code and 12 definitions.
import type { PathExclusion } from "@govlab/quality/config";
export type FileRole = "data" | "other" | "prose" | "source";
export type ExcludedKind = "binary" | "generated" | "ingested";
export interface LineCount {
blank: number;
code: number;
total: number;
}
export interface Bucket {
blank: number;
bytes: number;
code: number;
files: number;
total: number;
}
export interface LargestEntry {
lines: number;
path: string;
}
export interface State {
authored: Map<FileRole, Bucket>;
byArea: Map<string, Bucket>;
byExt: Map<string, Bucket>;
bytes: number;
dirs: number;
excluded: Map<ExcludedKind, Bucket>;
fileLineCounts: number[];
files: number;
largest: LargestEntry[];
lines: LineCount;
manifestFiles: number;
maxDepth: number;
testFiles: number;
textFiles: number;
unclassified: Map<string, Bucket>;
}
export interface LineScan {
readonly total: number;
readonly blank: number;
readonly runLength: number;
readonly sawNonSpace: boolean;
}
export type FileClass = ExcludedKind | "authored" | "binary";
export interface Observation {
readonly area: string;
readonly class: FileClass;
readonly ext: string;
readonly lines: LineCount;
readonly manifest: boolean;
readonly rel: string;
readonly role: FileRole;
readonly size: number;
readonly test: boolean;
}
export interface ExcludedObservation extends Observation {
readonly class: ExcludedKind;
}
export interface Walk {
readonly dirs: number;
readonly files: readonly Observation[];
}
export interface ScanScope {
readonly ignore: PathExclusion;
readonly members: readonly string[];
readonly root: string;
}