Skip to content

Replace tslint with ESLint + typescript-eslint#320

Merged
jrothrock merged 1 commit into
masterfrom
fix/replace-tslint-with-eslint
May 28, 2026
Merged

Replace tslint with ESLint + typescript-eslint#320
jrothrock merged 1 commit into
masterfrom
fix/replace-tslint-with-eslint

Conversation

@jrothrock
Copy link
Copy Markdown
Collaborator

Summary

  • Removes tslint (deprecated/archived since 2019, no longer maintained)
  • Adds eslint@^10, @typescript-eslint/eslint-plugin@^8, @typescript-eslint/parser@^8
  • Deletes tslint.json, adds eslint.config.js (flat config format)
  • Updates lint script: tslint -p tsconfig.jsoneslint lib/ index.ts

Config approach

The new config mirrors the same permissiveness as the old tslint.json — extends @typescript-eslint/recommended and disables the equivalent of every rule that was explicitly turned off in tslint:

tslint rule (disabled) ESLint equivalent (disabled)
no-namespace @typescript-eslint/no-namespace
no-var-requires @typescript-eslint/no-require-imports
no-shadowed-variable @typescript-eslint/no-shadow
(implicit) @typescript-eslint/no-this-alias — integrations use const self = this

Result

Zero errors on the existing codebase. 136 pre-existing unused-var issues surface as warnings (not errors) so the build doesn't break. These can be cleaned up separately.

Test plan

  • npm run lint exits 0
  • CI passes

🤖 Generated with Claude Code

@jrothrock jrothrock force-pushed the pr/15-tslib-import-helpers branch from 757a128 to bdd722a Compare May 28, 2026 17:52
@jrothrock jrothrock force-pushed the fix/replace-tslint-with-eslint branch from d83d823 to 4ba713d Compare May 28, 2026 17:52
@jrothrock jrothrock changed the base branch from pr/15-tslib-import-helpers to fix/update-uuid-v14 May 28, 2026 17:52
@jrothrock jrothrock force-pushed the fix/update-uuid-v14 branch from 75ccf94 to 187ca59 Compare May 28, 2026 18:26
@jrothrock jrothrock force-pushed the fix/replace-tslint-with-eslint branch from 4ba713d to 9d7457d Compare May 28, 2026 18:26
@jrothrock jrothrock force-pushed the fix/update-uuid-v14 branch from 187ca59 to f443322 Compare May 28, 2026 18:34
@jrothrock jrothrock force-pushed the fix/replace-tslint-with-eslint branch from 9d7457d to 8358a83 Compare May 28, 2026 18:34
Base automatically changed from fix/update-uuid-v14 to master May 28, 2026 18:36
TSLint was deprecated and archived in 2019. Replaces it with:
- eslint@^8.57.0 (v8 required by @typescript-eslint@7 peer dep)
- @typescript-eslint/eslint-plugin@^7.0.0
- @typescript-eslint/parser@^7.0.0

Uses legacy .eslintrc.js format for eslint@8 compatibility. Disables
rules that fire on existing code to keep zero errors on first pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jrothrock jrothrock force-pushed the fix/replace-tslint-with-eslint branch from 8358a83 to 442f895 Compare May 28, 2026 18:37
@jrothrock jrothrock merged commit 8cda8be into master May 28, 2026
14 checks passed
@jrothrock jrothrock deleted the fix/replace-tslint-with-eslint branch May 28, 2026 18:41
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.

2 participants