Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Tooling: upgrade ESLint config — autofix pipeline, type-aware rules, surgical rule options

Open
#207 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@Kuldeep2822k is already working on this.

Since Oct 20, 2026.

  • #511 by @Kuldeep2822k — open

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
45/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
eslint, typescript
Domain
cli, tooling

Research direction

Start with eslint.config.mjs, the lint scripts in package.json, the project VSCode settings, and CI configuration. Read the existing rule overrides and test scoping, then run the current lint and check commands to establish a baseline. Work through the suggested rollout in stages; done means the proposed type-aware and cleanup rules are configured with scoped exceptions, lint passes with no warnings, and CI uses the agreed check.

Written by the indexing model from the issue text.

Description

enhancement good first issue

Context

Current setup: eslint.config.mjs uses js.configs.recommended + tseslint.configs.recommended (non-type-aware), and the lint script has no --fix. Several rules are disabled repo-wide with reasonable justifications, but the blanket-offs also discard checks that tsc does not cover (tsconfig already enforces strict, noUnusedLocals, noUnusedParameters, noImplicitReturns).

This issue tracks a low-risk, high-payoff ESLint hardening pass.

1. Enable the autofixer (no new rules, immediate QoL)

"lint": "eslint .",
"lint:fix": "eslint . --fix"

Plus project-level VSCode settings for fix-on-save:

{ "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" } }

2. Type-aware linting — biggest upgrade

Switch tseslint.configs.recommended → tseslint.configs.recommendedTypeChecked with parserOptions.project: './tsconfig.json'.

Rules that catch real bugs tsc cannot, especially for an async CLI writing vault files:

  • @typescript-eslint/no-floating-promises — un-awaited promise = silent write loss (top value)
  • @typescript-eslint/no-misused-promises — async fn passed where sync expected
  • @typescript-eslint/restrict-template-expressions — accidental [object Object] in CLI output
  • @typescript-eslint/return-await, no-invalid-void-type, deterministic-star-results

Note: no-floating-promises will flag test/ code; scope it off for test/** (same pattern already used for no-explicit-any) rather than disabling repo-wide.

3. Re-enable blanket-disabled rules with surgical options

  • @typescript-eslint/no-unused-vars → ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrors: 'none' }] (preserves the catch-binding/test-double exemption without losing dead-code checks)
  • no-empty → ['error', { allowEmptyCatch: true }] (keeps the swallow-and-continue storage contract, catches empty if/try blocks elsewhere)
  • prefer-const → re-enable; graph-walk reassignment fixes are cheap (['error', { destructuring: 'all' }] also viable)

4. Zero-debate cleanups (all auto-fixable)

  • eqeqeq: ['error', 'always']
  • @typescript-eslint/consistent-type-imports
  • @typescript-eslint/no-useless-empty-export
  • eslint-plugin-unused-imports plugin (auto-deletes dead imports)

Suggested rollout order

  1. Add --fix script + fix-on-save (zero new violations)
  2. Flip to recommendedTypeChecked, fix the no-floating-promises batch (latent bugs, not style)
  3. Re-enable no-unused-vars / no-empty / prefer-const with scoped options
  4. Add cleanup rules + --max-warnings=0 in CI

Caveat: type-aware lint is slower (builds the TS program); keep it in the check script / CI, fine for dev at current repo size.

Dominant language
TypeScript
Stars
1
Forks
0
Avg merge
23h 35m
Merged PRs (30d)
159

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Kuldeep2822k/cli

All issues in Kuldeep2822k/cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.