Skip to content

refactor(lint): v0.15 ESLint/TS Quick-Wins — verifizierte Verschärfungen#163

Merged
Exoridus merged 2 commits into
mainfrom
feat/v0.15-eslint-quickwins
Jun 23, 2026
Merged

refactor(lint): v0.15 ESLint/TS Quick-Wins — verifizierte Verschärfungen#163
Exoridus merged 2 commits into
mainfrom
feat/v0.15-eslint-quickwins

Conversation

@Exoridus

Copy link
Copy Markdown
Owner

v0.15 — ESLint/TS Quick-Wins (Teil 1: Verschärfungen)

Erster, 0-Risiko-Teil der ESLint-Modernisierung. Alle Änderungen empirisch gemessen (Regel testweise auf error/Flag aktiv → Fehler gezählt), nicht geschätzt.

Detail-Spec (lokal, gitignored): .workspace/specs/v0.15-hardening/07-eslint-modernization.md

Änderungen

  • @typescript-eslint/no-shadow warnerror (src + packages) — 0 Verstöße gemessen.
  • @typescript-eslint/unified-signatures warnerror (src + packages) — 0 Verstöße (die per-file-off für Loader/ParticleSystem bleiben).
  • noUncheckedSideEffectImports: true (exojs-config/typescript/base.json) — 0 Fehler über root + alle 5 Pakete.

Verifikation (lokale CI-Parität)

  • lint:strict + lint:packages: 0 neue Fehler
  • typecheck + alle 5 Paket-typechecks: grün
  • format:check: grün

Kontext + dokumentierte Folge-Schritte

Kernbefund der Analyse: ExoJS ist in den Basis-Regeln bereits strenger als gängige Referenzen; die echte Schwäche sind die ~30 per-Verzeichnis-off-Blöcke (= Welle 2 / Epic 1, separat). Im Spec geplant als Folge-PRs:

  • Noise-Reduktion — 16 redundante Preset-Default-Regeln + veraltete no-var-requires + prefer-ts-expect-error raus (sorgfältig, da sich Werte über Blöcke überschneiden).
  • noUnusedLocals/noUnusedParameters + Aufräumen von 11 toten Deklarationen.
  • @vitest/eslint-plugin für Tests.
  • printWidth bleibt 160 (begründet im Spec).

Exoridus added 2 commits June 23, 2026 13:32
…le noUncheckedSideEffectImports

Verified 0 violations across src + all packages (measured by setting each
rule to error and running lint:strict + lint:packages). noUncheckedSideEffectImports
likewise 0 errors across root + all package typechecks.

- @typescript-eslint/no-shadow: warn -> error (src + packages)
- @typescript-eslint/unified-signatures: warn -> error (src + packages)
- tsconfig base: noUncheckedSideEffectImports: true
…uires

These rules set exactly the value recommendedTypeChecked / stylisticTypeChecked
already provide. Verified via `eslint --print-config` that all 14 type-checked
defaults stay active as error in BOTH src and packages after removal
(behaviour-identical). prefer-ts-expect-error is deprecated (ban-ts-comment with
ts-ignore:false covers it); no-var-requires was renamed to no-require-imports in
typescript-eslint v6 (dead key). no-floating-promises kept (also set in site/,
not redundant there); dot-notation:off kept (documenting pair with no-shadow:off).

- 16 redundant @typescript-eslint defaults removed from src + packages blocks
- Core prefer-promise-reject-errors removed (preset prefers the TS variant)
- dead no-var-requires removed from scripts block
- net -33 lines, 0 behaviour change (proven via print-config)
@Exoridus Exoridus merged commit 78df6b7 into main Jun 23, 2026
12 checks passed
@Exoridus Exoridus deleted the feat/v0.15-eslint-quickwins branch June 23, 2026 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant