Gå til innholdet

max-file-length

Advar når kildefiler overskrider en linjeantallsgrense.

Store filer er vanskeligere å navigere, gjennomgå og teste. Denne regelen teller linjer i hver fil innenfor omfanget og rapporterer en advarsel når antallet overskrider et konfigurerbart maksimum. Bruk av warning-alvorlighetsgrad holder CI grønn samtidig som filer som bør refaktoreres blir synliggjort.

En fil med 450 linjer når grensen er 300:

src/engine/runner.ts (450 lines)

Den samme logikken delt opp i fokuserte moduler:

src/engine/runner.ts (120 lines)
src/engine/loader.ts (95 lines)
src/engine/reporter.ts (85 lines)
/// <reference path="../rules.d.ts" />
const MAX_LINES = 300;
export default {
rules: {
"max-file-length": {
description: `Source files should not exceed ${MAX_LINES} lines`,
severity: "warning",
async check(ctx) {
const checks = ctx.scopedFiles.map(async (file) => {
const content = await ctx.readFile(file);
const lineCount = content.split("\n").length;
if (lineCount > MAX_LINES) {
ctx.report.warning({
message: `File has ${lineCount} lines (max: ${MAX_LINES}). Consider splitting it.`,
file,
fix: "Extract related functions into separate modules",
});
}
});
await Promise.all(checks);
},
},
},
} satisfies RuleSet;

Når du ønsker en myk grense mot at filer vokser for store. Juster MAX_LINES etter teamets preferanse (200-500 er vanlig).

Når noen filer med rette er store (generert kode, testsuiter med mange tilfeller), eller når du foretrekker andre kompleksitetsmetrikker som syklomatisk kompleksitet.