Skip to content

Add a real linter/formatter (ESLint + Prettier) beyond tsc --noEmit #54

Description

@Wikid82

Problem

`npm run lint` is only `tsc --noEmit` (`package.json`) — a type-check, not a lint. There's no ESLint config and no formatter, so style consistency (unused vars beyond what `tsc` catches, import ordering, etc.) and formatting aren't enforced anywhere in CI or locally.

Proposal

  • Add ESLint with the TypeScript plugin (flat config, matching the project's modern tooling — Node 24, TS ~6) plus Prettier for formatting.
  • Add `npm run lint` → run both `tsc --noEmit` and `eslint .` (or split into `lint:types`/`lint:style` composed under `lint`).
  • Wire into CI (`ci.yml`'s existing "Lint" step already runs `npm run lint`, so this is a drop-in addition) and into the future pre-commit hook (see lefthook issue).

Notes

Keep the initial rule set light — the goal is catching real issues (unused imports, floating promises) not bikeshedding style; Prettier removes the style debate entirely by auto-formatting.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceCI, tooling, and repo-hygiene work

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions